我使用Optuna2.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)有时模型在两个周期之后停止,另一些时候在12个时代之后停止,48个等等。我想要的是确保这个模型在被修剪之前总是训练至少30个时代。我猜想参数min_early_stopping_rate可能对此有一定的控制,但我尝试将其从0更改为30,然后模型就永远不会被剪短。有人能比Optuna文档更好地解释一下吗?SuccessiveHalvingPruner()中的这些参数到底做了什么(特别是min_early_stopping_rate)?谢谢
发布于 2021-03-18 09:06:54
min_resource关于文献资料的解释说
只有在执行
min_resource * reduction_factor ** min_early_stopping_rate步骤之前,才会对试用进行修剪。
因此,我假设我们需要将min_resource的值替换为一个特定的数字,这取决于reduction_factor和min_early_stopping_rate。
https://stackoverflow.com/questions/66231467
复制相似问题