【发布时间】:2021-05-19 17:21:30
【问题描述】:
我正在使用 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)?
谢谢
【问题讨论】:
标签: tensorflow tf.keras pruning optuna