KerasTuner:超参数调优 / API 文档 / 调谐器 / GridSearch 调谐器

GridSearch 调谐器

[源]

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
)

Grid search 调谐器。

此调谐器迭代遍历所有可能的超参数组合。

例如,对于

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 不会遍历所有可能的值

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

对于这些情况,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:可选整数,最多测试的试验总数(模型配置)。请注意,如果搜索空间已耗尽,预言机可能会在测试完 max_trial 个模型之前中断搜索。如果未指定,则一直运行直到搜索空间耗尽。
  • seed:可选整数,随机种子。
  • hyperparameters:可选 HyperParameters 实例。可用于覆盖(或提前注册)搜索空间中的超参数。
  • tune_new_entries:布尔值,表示超模型请求但在 hyperparameters 中未指定的超参数条目是否应添加到搜索空间。如果为 False,则将使用这些参数的默认值。默认为 True。
  • allow_new_entries:布尔值,表示是否允许超模型请求 hyperparameters 中未列出的超参数条目。默认为 True。
  • max_retries_per_trial:整数。默认为 0。如果试验崩溃或结果无效,则重试 Trial 的最大次数。
  • max_consecutive_failed_trials:整数。默认为 3。连续失败的 Trial 的最大数量。达到此数量时,搜索将停止。当所有重试均未成功时,Trial 将被标记为失败。
  • **kwargs:与所有 Tuner 子类相关的关键字参数。请参阅 Tuner 的 docstring。