Keras 3 API 文件 / KerasTuner / 調節器 / 網格搜尋調節器

網格搜尋調節器 (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]

對於以下超參數類型,網格搜尋不會窮舉所有可能的值

  • hp.Float(),當未指定 step 時。
  • hp.Int(),當 sampling 設定為 "log""reverse_log",且未指定 step 時。

對於這些情況,KerasTuner 預設會在範圍內均勻地選取 10 個樣本。若要設定 hp.Float()hp.Int() 的取樣粒度,請在其初始化器中使用 step 參數。

參數

  • hypermodelHyperModel 類別的實例(或接受超參數並返回模型實例的可呼叫物件)。當覆寫 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 中指定的超參數項目添加到搜索空間。如果不是,則將使用這些參數的默認值。默認為 True。
  • allow_new_entries:布林值,表示是否允許超模型請求未在 hyperparameters 中列出的超參數項目。默認為 True。
  • max_retries_per_trial:整數。默認為 0。如果 Trial 崩潰或結果無效,則重試的最大次數。
  • max_consecutive_failed_trials:整數。默認為 3。連續失敗的 Trial 的最大次數。達到此數目時,搜索將停止。當所有重試均失敗時,Trial 將標記為失敗。
  • **kwargs:與所有 Tuner 子類別相關的關鍵字參數。請參閱 Tuner 的說明文件。