Keras 3 API 文档 / KerasTuner / 调优器 / 超带宽度调优器

超带宽度调优器

[来源]

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
)

超带宽度算法的变体。

参考文献

Li, Lisha 和 Kevin Jamieson。"超带宽度:一种新颖的基于Bandit的超参数优化方法。"机器学习研究杂志 18 (2018): 1-52.

参数

  • hypermodelHyperModel 类的实例(或接受超参数并返回 Model 实例的可调用对象)。当覆盖 Tuner.run_trial() 并且不使用 self.hypermodel 时,它是可选的。
  • objective:字符串,keras_tuner.Objective 实例,或 keras_tuner.Objective 和字符串的列表。如果为字符串,则优化方向(最小化或最大化)将被推断。如果为 keras_tuner.Objective 列表,我们将最小化所有目标的总和以最小化,减去所有目标的总和以最大化。当 Tuner.run_trial()HyperModel.fit() 返回单个浮点数作为要最小化的目标时,objective 参数是可选的。
  • max_epochs:整数,训练一个模型的最大轮数。建议将其设置为略高于您最大模型预期收敛轮数的值,并在训练期间使用提前停止(例如,通过 tf.keras.callbacks.EarlyStopping)。默认为 100。
  • factor:整数,每个组中轮数和模型数量的缩减因子。默认为 3。
  • hyperband_iterations:整数,至少为 1,完整超带宽度算法迭代的次数。一次迭代将在大约 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 的最大次数。
  • max_consecutive_failed_trials:整数。默认为 3。连续失败的 Trial 的最大数量。达到此数量时,搜索将停止。当没有重试成功时,Trial 将被标记为失败。
  • **kwargs:与所有 Tuner 子类相关的关键字参数。请参阅 Tuner 的文档字符串。