Hyperband Tuner

[来源]

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
)

HyperBand 算法的变体。

参考

Lisha Li 和 Kevin Jamieson。《Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization.》 Journal of Machine Learning Research 18 (2018): 1-52。

参数

  • hypermodelHyperModel 类实例(或接受超参数并返回 Model 实例的可调用对象)。当覆盖 Tuner.run_trial() 且不使用 self.hypermodel 时,这是可选的。
  • objective:一个字符串、keras_tuner.Objective 实例,或由 keras_tuner.Objective 和字符串组成的列表。如果是字符串,将推断出优化方向(min 或 max)。如果是 keras_tuner.Objective 列表,我们将最小化所有需要最小化的目标的总和减去所有需要最大化的目标的总和。当 Tuner.run_trial()HyperModel.fit() 返回一个作为最小化目标(objective)的单精度浮点数时,objective 参数是可选的。
  • max_epochs:整数,用于训练单个模型的最大轮数(epochs)。建议将其设置为略高于您的最大模型预期收敛轮数的值,并在训练期间使用早停(例如,通过 tf.keras.callbacks.EarlyStopping)。默认为 100。
  • factor:整数,用于每个分段(bracket)的轮数和模型数量的减少因子。默认为 3。
  • hyperband_iterations:整数,至少为 1,表示完整执行 Hyperband 算法的次数。一次迭代将在所有试验(trials)中运行约 max_epochs * (math.log(max_epochs, factor) ** 2) 的累积轮数。建议根据您的资源预算将其设置为尽可能高的值。默认为 1。
  • seed:可选整数,随机种子。
  • hyperparameters:可选的 HyperParameters 实例。可用于覆盖(或提前注册)搜索空间中的超参数。
  • tune_new_entries:布尔值,表示超模型请求的但未在 hyperparameters 中指定的超参数条目是否应添加到搜索空间。如果不添加,则将使用这些参数的默认值。默认为 True。
  • allow_new_entries:布尔值,表示是否允许超模型请求未在 hyperparameters 中列出的超参数条目。默认为 True。
  • max_retries_per_trial:整数。默认为 0。如果试验(trial)崩溃或结果无效,则重试该 Trial 的最大次数。
  • max_consecutive_failed_trials:整数。默认为 3。连续失败的 Trial 的最大数量。达到此数量时,搜索将停止。当所有重试均未成功时,Trial 被标记为失败。
  • **kwargs:与所有 Tuner 子类相关的关键字参数。请参阅 Tuner 的 docstring。