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 類別的實例 (或接受超參數並傳回模型實例的可呼叫物件)。當 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:布林值,是否應將超模型請求但未在 hyperparameters 中指定的超參數項目新增至搜尋空間。如果不是,則會使用這些參數的預設值。預設為 True。
  • allow_new_entries:布林值,是否允許超模型請求未列在 hyperparameters 中的超參數項目。預設為 True。
  • max_retries_per_trial:整數。預設為 0。如果試驗 (Trial) 崩潰或結果無效,則重試 Trial 的最大次數。
  • max_consecutive_failed_trials:整數。預設為 3。連續失敗的 Trial 最大次數。當達到此數字時,搜尋將停止。當沒有任何重試成功時,Trial 會被標記為失敗。
  • **kwargs:與所有 Tuner 子類別相關的關鍵字引數。請參閱 Tuner 的文件字串。