Keras 3 API 文件 / KerasTuner / 預測器 / 基礎 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 實例。工作器會透過 gRPC 呼叫與集中式 Oracle 實例通訊,以呼叫 Oracle 方法。

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

Trial 實例透過 gRPC 呼叫傳遞時,會重建相同 Trial 實例的新副本。當工作器 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:整數,要測試的最大試驗(模型配置)總數。請注意,如果搜尋空間已耗盡,則預測器可能會在測試 max_trial 模型之前中斷搜尋。
  • hyperparameters:可選的 HyperParameters 實例。可用於覆寫(或預先註冊)搜尋空間中的超參數。
  • tune_new_entries:布林值,表示是否應該將超模型請求但未在 hyperparameters 中指定的超參數項目添加到搜索空間。如果為 False,則將使用這些參數的默認值。默認為 True。
  • allow_new_entries:布林值,表示是否允許超模型請求 hyperparameters 中未列出的超參數項目。默認為 True。
  • seed:整數。隨機種子。
  • max_retries_per_trial:整數。默認為 0。如果 Trial 崩潰或結果無效,則重試 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:字串,此 Trial 的 ID。

返回

一個包含鍵值 "values" 和 "status" 的字典,其中 "values" 是參數名稱到建議值的映射,而 "status" 應該是 "RUNNING"(試驗可以正常開始)、"IDLE"(oracle 正在等待某些東西且無法建立試驗)或 "STOPPED"(oracle 已完成搜索且不應建立新的試驗)其中之一。


[來源]

wrapped_func 函式

keras_tuner.Oracle.update_trial()