KerasTuner:超参数调优 / API文档 / Tuners / GridSearch Tuner

GridSearch Tuner

[源代码]

GridSearch

keras_tuner.GridSearch(
    hypermodel=None,
    objective=None,
    max_trials=None,
    seed=None,
    hyperparameters=None,
    tune_new_entries=True,
    allow_new_entries=True,
    max_retries_per_trial=0,
    max_consecutive_failed_trials=3,
    **kwargs
)

网格搜索调优器。

此调优器会遍历所有可能的超参数组合。

例如,使用

optimizer = hp.Choice("model_name", values=["sgd", "adam"])
learning_rate = hp.Choice("learning_rate", values=[0.01, 0.1])

此调优器将覆盖以下组合:["sgd", 0.01], ["sgd", 0.1], ["adam", 0.01] ["adam", 0.1]

对于以下超参数类型,GridSearch 将不会穷尽所有可能的值

  • 当 `step` 未指定时,hp.Float()
  • 当 `sampling` 设置为 "log""reverse_log" 且 `step` 未指定时,hp.Int()

在这些情况下,KerasTuner 默认会从该范围内平均选取 10 个样本。要配置 hp.Float()hp.Int() 的采样粒度,请使用它们初始化器中的 `step` 参数。

参数

  • hypermodelHyperModel 类的实例(或可调用对象,它接受超参数并返回 Model 实例)。当 Tuner.run_trial() 被覆盖且不使用 self.hypermodel 时,此参数是可选的。
  • objective: 一个字符串、keras_tuner.Objective 实例,或一个 keras_tuner.Objective 对象和字符串的列表。如果是一个字符串,将推断优化的方向(最小化或最大化)。如果是一个 keras_tuner.Objective 对象列表,我们将最小化所有目标的总和以进行最小化,或最大化所有目标的总和以进行最大化。当 Tuner.run_trial()HyperModel.fit() 返回一个单一的浮点数作为要最小化的目标时,objective 参数是可选的。
  • max_trials:可选整数,最多测试的总试验次数(模型配置)。请注意,如果搜索空间已被穷尽,则 Oracle 可能会在测试完 max_trial 个模型之前中断搜索。如果未指定,则一直运行直到搜索空间被穷尽。
  • seed: 可选的整数,随机种子。
  • hyperparameters: 可选的 HyperParameters 实例。可用于覆盖(或预先注册)搜索空间中的超参数。
  • tune_new_entries: 布尔值,是否应将 hypermodel 请求但未在 hyperparameters 中指定的超参数条目添加到搜索空间。如果为 false,则将使用这些参数的默认值。默认为 True。
  • allow_new_entries: 布尔值,是否允许 hypermodel 请求未在 hyperparameters 中列出的超参数条目。默认为 True。
  • max_retries_per_trial: 整数。默认为 0。如果试验崩溃或结果无效,则重试 Trial 的最大次数。
  • max_consecutive_failed_trials: 整数。默认为 3。连续失败 Trial 的最大数量。达到此数量时,搜索将停止。当重试均未成功时,Trial 将被标记为失败。
  • **kwargs: 与所有 Tuner 子类相关的关键字参数。请参阅 Tuner 的文档字符串。