【问题标题】:How to set a minimum number of epoch in Optuna SuccessiveHalvingPruner()?如何在 Optuna SuccessiveHalvingPruner() 中设置最小时期数?
【发布时间】: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


    【解决方案1】:

    min_resourcethe documentation的解释说

    在执行min_resource * reduction_factor ** min_early_stopping_rate 步骤之前,永远不会修剪试验。

    所以,我想我们需要根据reduction_factormin_early_stopping_ratemin_resource 的值替换为一个特定的数字。

    【讨论】:

      猜你喜欢
      • 2021-03-11
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多