1 回答

TA貢獻1876條經驗 獲得超6個贊
他們不是任何特殊的解決方案,您必須在這里嘗試所有可能的情況。但是我告訴您最大宗師遵循的更一般的過程。
def build_lrfn(lr_start=0.00001, lr_max=0.0008,
lr_min=0.00001, lr_rampup_epochs=20,
lr_sustain_epochs=0, lr_exp_decay=.8):
lr_max = lr_max * strategy.num_replicas_in_sync
def lrfn(epoch):
if epoch < lr_rampup_epochs:
lr = (lr_max - lr_start) / lr_rampup_epochs * epoch + lr_start
elif epoch < lr_rampup_epochs + lr_sustain_epochs:
lr = lr_max
else:
lr = (lr_max - lr_min) * lr_exp_decay**(epoch - lr_rampup_epochs - lr_sustain_epochs) + lr_min
return lr
return lrfn
lrfn = build_lrfn()
lr_schedule = tf.keras.callbacks.LearningRateScheduler(lrfn, verbose=1)
history = model.fit(
train_dataset,
epochs=EPOCHS,
callbacks=[lr_schedule],
steps_per_epoch=STEPS_PER_EPOCH,
validation_data=valid_dataset
)
對于更多優化器,我總是關注這個鏈接
在我看來,亞當最近最適合你的模型
添加回答
舉報