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
)
对于更多优化器,我总是关注这个链接
在我看来,亚当最近最适合你的模型
添加回答
举报