KerasTuner:超參數調校 / API 文件 / 調諧器 / Hyperband 調諧器

Hyperband 調諧器

[原始碼]

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
)

HyperBand 演算法的變體。

參考資料

Li, Lisha, and Kevin Jamieson. "Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization." Journal of Machine Learning Research 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:整數,訓練一個模型時的最大 epoch 數。建議將其設定為略高於您最大模型預期收斂的 epoch 數的值,並在訓練期間使用提前停止(例如,透過 tf.keras.callbacks.EarlyStopping)。預設值為 100。
  • factor:整數,每個 bracket 中 epoch 數和模型數的縮減因子。預設值為 3。
  • hyperband_iterations:整數,至少為 1,迭代整個 Hyperband 演算法的次數。一次迭代將在所有試驗中運行大約 max_epochs * (math.log(max_epochs, factor) ** 2) 個累積 epoch。建議將此值設定為您資源預算範圍內允許的最大值。預設值為 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 的 docstring。