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) 一起使用,您的調整器類別必須能夠處理此調整器將設定的三個特殊超參數 (hyperparameters):在 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)
次所有試驗的累積 epoch 中執行。建議將此值設定為在您的資源預算範圍內盡可能高的值。預設值為 1。hyperparameters
中指定的超參數條目新增到搜尋空間中。如果沒有,則會使用這些參數的預設值。預設值為 True。hyperparameters
中列出的超參數條目。預設值為 True。Trial
的最大次數。Trial
最大次數。達到此數字時,搜尋將會停止。當沒有任何重試成功時,Trial
會被標記為失敗。