我有两个关于 Keras Tuner Hyperband 类的问题(针对回归问题)
tuner = kerastuner.tuners.hyperband.Hyperband(hypermodel,
objective,
max_epochs,
factor=3,
hyperband_iterations=1,
seed=None,
hyperparameters=None,
tune_new_entries=True,
allow_new_entries=True,
**kwargs)
https://keras-team.github.io/keras-tuner/documentation/tuners/#hyperband-class
与 BayesianOptimization 和 RandomSearch 不同,Tuner Hyperband(和 Sklearn)没有参数“max_trials”。定义它们的最佳方式是什么?该文档提到了(N = max_epochs,f = 3 default)的所有试验中最多N *(log(N)/ log(f))^ 2个累积时期,考虑到我通常需要max_epochs> 10000,这似乎非常高一次很好的训练。我想限制 Keras Tuner 的计算时间,例如大约一天。有没有比按 ctrl+c 取消以自动开始训练更好的方法?
当我开始使用
tuner.search( x=trainX, y=trainY, validation_split=0.1, batch_size=batch_size, callbacks=[stop_early], epochs=max_epochs_search)
可以传递 epoch 数量的另一个参数。'search()' 的 'epochs' 和 'Hyperband()' 的 'max_epochs' 之间有什么关系?它们中的任何一个或公式 N*(log(N)/log(f))^2 似乎都不适合时期的总数。
我在其他地方找不到太多信息。同样在阅读了这篇论文之后,我还不清楚这一点。欢迎任何提示。谢谢!