HyperbandOracle
類別keras_tuner.oracles.HyperbandOracle(
objective=None,
max_epochs=100,
factor=3,
hyperband_iterations=1,
seed=None,
hyperparameters=None,
allow_new_entries=True,
tune_new_entries=True,
max_retries_per_trial=0,
max_consecutive_failed_trials=3,
)
Hyperband 的預言機類別。
請注意,若要將此預言機與您自己的子類別化調參器搭配使用,您的調參器類別必須能夠在 Tuner.run_trial
中處理此調參器將設定的三個特殊超參數
這些超參數將在 Hyperband 演算法的「逐次減半」部分期間設定。
範例
def run_trial(self, trial, *args, **kwargs):
hp = trial.hyperparameters
if "tuner/trial_id" in hp:
past_trial = self.oracle.get_trial(hp['tuner/trial_id'])
model = self.load_model(past_trial)
else:
model = self.hypermodel.build(hp)
initial_epoch = hp['tuner/initial_epoch']
last_epoch = hp['tuner/epochs']
for epoch in range(initial_epoch, last_epoch):
self.on_epoch_begin(...)
for step in range(...):
# Run model training step here.
self.on_epoch_end(...)
引數
keras_tuner.Objective
執行個體或 keras_tuner.Objective
和字串的清單。如果是字串,則會推斷最佳化的方向(最小化或最大化)。如果是 keras_tuner.Objective
的清單,我們將最小化所有目標的總和以最小化減去所有目標的總和以最大化。當 Tuner.run_trial()
或 HyperModel.fit()
傳回單一浮點數作為要最小化的目標時,objective
引數是可選的。tf.keras.callbacks.EarlyStopping
)。預設值為 100。max_epochs * (math.log(max_epochs, factor) ** 2)
個累積 epochs。建議您將此值設定為資源預算允許的最大值。預設值為 1。hyperparameters
中指定的超參數項目添加到搜尋空間。如果為否,則將使用這些參數的預設值。預設值為 True。hyperparameters
中未列出的超參數項目。預設值為 True。Trial
崩潰或結果無效,則重試 Trial
的最大次數。Trial
的最大次數。當達到此數字時,搜尋將停止。當所有重試均失敗時,Trial
將標記為失敗。