我正在使用 Optuna 2.5 优化 tf.keras CNN 模型上的几个超参数。我想使用修剪,以便优化跳过超参数空间中不太有希望的角落。我正在使用这样的东西:
study0 = optuna.create_study(study_name=study_name,
storage=storage_name,
direction='minimize',
sampler=TPESampler(n_startup_trials=25, multivariate=True, seed=123),
pruner=optuna.pruners.SuccessiveHalvingPruner(min_resource='auto',
reduction_factor=4, min_early_stopping_rate=0),
load_if_exists=True)
有时模型在 2 个 epoch 后停止,有时在 12 个 epoch 后停止,48 个等等。我想要的是确保模型在被修剪之前总是训练至少 30 个 epoch。我猜这个参数min_early_stopping_rate
可能对此有一些控制,但我试图将它从 0 更改为 30,然后模型永远不会被修剪。有人能比 Optuna 文档更好地解释我吗,这些参数到底 SuccessiveHalvingPruner()
是做什么的(特别是min_early_stopping_rate
)?谢谢