KerasTuner:超參數調整 / API 文件 / Oracles / 基礎 Oracle 類別

基礎 Oracle 類別

[原始碼]

Oracle 類別

keras_tuner.Oracle(
    objective=None,
    max_trials=None,
    hyperparameters=None,
    allow_new_entries=True,
    tune_new_entries=True,
    seed=None,
    max_retries_per_trial=0,
    max_consecutive_failed_trials=3,
)

實作超參數最佳化演算法。

在平行調整設定中,只有一個 Oracle 實例。工作者會透過 gPRC 呼叫 Oracle 方法與中央 Oracle 實例進行通訊。

Trial 物件經常被用作通訊封包,透過 gPRC 呼叫在工作者 Tuner 實例和 Oracle 之間傳遞資訊。例如,Oracle.create_trial() 會傳回 Trial 物件,而 Oracle.end_trial() 會在其引數中接受 Trial

當相同的 Trial 實例透過 gRPC 呼叫時,會重建新的副本。當工作者 Tuner 中對 Trial 物件的變更,透過呼叫 Oracle.end_trial() 傳回給 Oracle 時,這些變更會同步到 Oracle 中的原始副本。

引數

  • objective:字串、keras_tuner.Objective 實例,或 keras_tuner.Objective 和字串的清單。如果是字串,則會推斷最佳化方向(最小或最大)。如果是 keras_tuner.Objective 的清單,我們會最小化所有目標的總和,以最小化減去要最大化的所有目標的總和。當 Tuner.run_trial()HyperModel.fit() 傳回單一浮點數作為要最小化的目標時,objective 引數是可選的。
  • max_trials:整數,最多要測試的試驗總數(模型組態)。請注意,如果搜尋空間已耗盡,oracle 可能會在測試 max_trial 模型之前中斷搜尋。
  • hyperparameters:可選的 HyperParameters 實例。可用於覆寫(或預先註冊)搜尋空間中的超參數。
  • tune_new_entries:布林值,是否應將超模型請求但在 hyperparameters 中未指定的超參數項目新增至搜尋空間。如果沒有,則會使用這些參數的預設值。預設值為 True。
  • allow_new_entries:布林值,是否允許超模型請求未在 hyperparameters 中列出的超參數項目。預設值為 True。
  • seed:整數。隨機種子。
  • max_retries_per_trial:整數。預設值為 0。如果試驗崩潰或結果無效,則重試 Trial 的最大次數。
  • max_consecutive_failed_trials:整數。預設值為 3。連續失敗的 Trial 最大次數。當達到這個數字時,搜尋將會停止。當沒有任何重試成功時,Trial 會被標記為失敗。

[原始碼]

wrapped_func 函數

keras_tuner.Oracle.create_trial()

[原始碼]

wrapped_func 函數

keras_tuner.Oracle.end_trial()

[原始碼]

get_best_trials 方法

Oracle.get_best_trials(num_trials=1)

傳回最佳 Trial


[原始碼]

get_state 方法

Oracle.get_state()

傳回此物件的目前狀態。

此方法會在 save 期間呼叫。

傳回

可序列化的物件字典,作為狀態。


[原始碼]

set_state 方法

Oracle.set_state(state)

設定此物件的目前狀態。

此方法會在 reload 期間呼叫。

引數

  • state:可序列化的物件字典,作為要還原的狀態。

[原始碼]

score_trial 方法

Oracle.score_trial(trial)

為已完成的 Trial 評分。

可以在子類別中覆寫此方法,以提供一組超參數值的分數。此方法會在已完成的 Trial 上從 end_trial 呼叫。

引數

  • trial:已完成的 Trial 物件。

[原始碼]

populate_space 方法

Oracle.populate_space(trial_id)

使用試驗的值填滿超參數空間。

此方法應在子類別中覆寫,並在 create_trial 中呼叫,以便使用值填滿超參數空間。

引數

  • trial_id:字串,此試驗的 ID。

傳回

具有鍵「values」和「status」的字典,其中「values」是參數名稱到建議值的對應,「status」應該是「RUNNING」(試驗可以正常開始)、「IDLE」(oracle 正在等待某些事物,並且無法建立試驗)或「STOPPED」(oracle 已完成搜尋,不應建立新的試驗)之一。


[原始碼]

wrapped_func 函數

keras_tuner.Oracle.update_trial()