Tuner
類別keras_tuner.Tuner(
oracle,
hypermodel=None,
max_model_size=None,
optimizer=None,
loss=None,
metrics=None,
distribution_strategy=None,
directory=None,
project_name=None,
logger=None,
tuner_id=None,
overwrite=False,
executions_per_trial=1,
**kwargs
)
Keras 模型的調參器類別。
這是所有 Keras 模型調參器的基礎 Tuner
類別。它管理 Keras 模型的建構、訓練、評估和儲存。可以透過繼承該類別來建立新的調參器。
所有與 Keras 相關的邏輯都在 Tuner.run_trial()
及其子程式中。當繼承 Tuner
時,如果沒有呼叫 super().run_trial()
,它可以調整任何東西。
參數
Oracle
類別的實例。HyperModel
類別的實例(或接受超參數並返回 Model
實例的可呼叫物件)。當覆寫 Tuner.run_trial()
且不使用 self.hypermodel
時,它是可選的。compile
步驟中的 optimizer
參數。如果超模型沒有編譯它產生的模型,則必須指定此參數。compile
步驟中的 loss
參數。如果超模型沒有編譯它產生的模型,則必須指定此參數。compile
步驟中的 metrics
參數。如果超模型沒有編譯它產生的模型,則必須指定此參數。tf.distribute.Strategy
的可選實例。如果指定,每個試驗將在此範圍下運行。例如,tf.distribute.MirroredStrategy(['/gpu:0', '/gpu:1'])
將在兩個 GPU 上運行每個試驗。目前僅支援單一工作節點策略。Tuner
儲存檔案的前置詞。Tuner
的 ID。False
。如果為 False
,則在找到同名專案時會重新載入。否則,將覆寫專案。BaseTuner
的參數。屬性
max_trials
,則為 None
。這在恢復先前停止的搜尋時很有用。get_best_hyperparameters
方法Tuner.get_best_hyperparameters(num_trials=1)
傳回最佳超參數,由目標函數決定。
此方法可用於重新實例化在搜尋過程中找到的(未經訓練的)最佳模型。
範例
best_hp = tuner.get_best_hyperparameters()[0]
model = tuner.hypermodel.build(best_hp)
參數
HyperParameters
物件的選用數量。傳回值
從最佳到最差排序的 HyperParameter
物件清單。
get_best_models
方法Tuner.get_best_models(num_models=1)
傳回最佳模型,由調整器的目標函數決定。
模型會載入對應於其最佳檢查點(在最佳試驗的最佳時期結束時)的權重。
此方法用於查詢在搜尋過程中訓練的模型。為了獲得最佳效能,建議使用在 search
過程中找到的最佳超參數在完整資料集上重新訓練模型,可以使用 tuner.get_best_hyperparameters()
取得這些超參數。
參數
傳回值
從最佳到最差排序的已訓練模型實例清單。
get_state
方法Tuner.get_state()
傳回此物件的目前狀態。
此方法會在 save
期間呼叫。
傳回值
一個包含可序列化物件作為狀態的字典。
load_model
方法Tuner.load_model(trial)
從給定的試驗中載入模型。
對於將中間結果回報給 Oracle
的模型,通常 load_model
應該依賴 trial.best_step
載入最佳回報的 step
。
參數
Trial
實例,對應於要載入的模型的 Trial
。on_epoch_begin
方法Tuner.on_epoch_begin(trial, model, epoch, logs=None)
在時期開始時呼叫。
參數
Trial
實例。Model
。on_batch_begin
方法Tuner.on_batch_begin(trial, model, batch, logs)
在批次開始時呼叫。
參數
Trial
實例。Model
。on_batch_end
方法Tuner.on_batch_end(trial, model, batch, logs=None)
在批次結束時呼叫。
參數
Trial
實例。Model
。on_epoch_end
方法Tuner.on_epoch_end(trial, model, epoch, logs=None)
在時期結束時呼叫。
參數
Trial
實例。Model
。run_trial
方法Tuner.run_trial(trial, )
評估一組超參數值。
此方法會在 search
期間多次呼叫,以使用不同的超參數建構和評估模型,並傳回目標函數值。
範例
您可以將其與 self.hypermodel
一起使用來建構和擬合模型。
def run_trial(self, trial, *args, **kwargs):
hp = trial.hyperparameters
model = self.hypermodel.build(hp)
return self.hypermodel.fit(hp, model, *args, **kwargs)
您也可以將其用作任何事物的黑盒最佳化器。
def run_trial(self, trial, *args, **kwargs):
hp = trial.hyperparameters
x = hp.Float("x", -2.0, 2.0)
y = x * x + 2 * x + 1
return y
參數
Trial
實例,其中包含執行此試驗所需的資訊。可以透過 trial.hyperparameters
存取超參數。search
傳遞的位置參數。search
傳入的關鍵字引數。傳回值
一個 History
物件,它是 model.fit()
的回傳值、字典、浮點數或這些類型中的一個清單。
如果回傳一個字典,它應該是一個要追蹤的指標字典。鍵是指標名稱,其中包含 objective
名稱。值應該是指標值。
如果回傳一個浮點數,它應該是 objective
值。
如果對模型進行多次評估,您可以回傳上述任何一種類型的結果清單。最終目標值是清單中結果的平均值。
results_summary
方法Tuner.results_summary(num_trials=10)
顯示調參結果摘要。
此方法會列印搜尋結果的摘要,包括每次試驗的超參數值和評估結果。
參數
save_model
方法Tuner.save_model(trial_id, model, step=0)
儲存給定試驗的模型。
參數
Trial
ID。Oracle
的模型,儲存的檔案對應的步驟。例如,對於 Keras 模型,這是訓練的週期數。search
方法Tuner.search(*fit_args, **fit_kwargs)
執行搜尋最佳超參數配置。
參數
run_trial
的位置引數,例如訓練和驗證資料。run_trial
的關鍵字引數,例如訓練和驗證資料。search_space_summary
方法Tuner.search_space_summary(extended=False)
列印搜尋空間摘要。
這些方法會列印搜尋空間中超參數的摘要,可以在呼叫 search
方法之前呼叫。
參數
set_state
方法Tuner.set_state(state)
設定此物件的當前狀態。
此方法在 reload
期間被呼叫。
參數