Keras Tuner Hyperband - 如何设置最大试验次数和最大历元?

问题描述 投票:0回答:2

我有两个关于 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*(log(N)/log(f))^2 累积纪元(N=max_epochs,f=3 默认值),考虑到我通常需要 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)
    

    可以传递纪元数的另一个参数。 “search()”的“epochs”和“Hyperband()”的“max_epochs”之间有什么关系?它们或公式 N*(log(N)/log(f))^2 似乎都不适合总纪元数。

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

tensorflow keras keras-tuner
2个回答
1
投票

关于你的第二个问题:

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


0
投票

这来自keras官方文档: https://keras.io/keras_tuner/api/tuners/hyperband/

keras_tuner.Hyperband(
    hypermodel=None,
    objective=None,
    max_epochs=100,
    factor=3,
    hyperband_iterations=1,
    seed=None,
    hyperparameters=None,
    tune_new_entries=True,
    allow_new_entries=True,
    max_retries_per_trial=0,
    max_consecutive_failed_trials=3,
    **kwargs
)

尽管 max_Trials 不能作为 hyperband 中的参数显式传递,但 max_epochs、factor 和 hyperband_iterations 会影响调谐器运行的试验数量。尝试调整这 3 个参数。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.