0

我有两个关于 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

  1. 与 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 取消以自动开始训练更好的方法?

  2. 当我开始使用

    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 似乎都不适合时期的总数。

我在其他地方找不到太多信息。同样在阅读了这篇论文之后,我还不清楚这一点。欢迎任何提示。谢谢!

4

1 回答 1

0

关于你的第二个问题:

据此,似乎仍然是一个悬而未决的问题,看起来 search() 方法的 'epochs' 参数是多余的。

于 2021-11-11T12:15:33.393 回答