【发布时间】:2020-08-16 12:47:10
【问题描述】:
我需要每 10 个时期应用一次指数衰减的学习率。初始学习率为0.000001,衰减因子为0.95
这是正确的设置方法吗?
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=0.000001,
decay_steps=(my_steps_per_epoch*10),
decay_rate=0.05)
opt = tf.keras.optimizers.SGD(learning_rate=lr_schedule, momentum=0.9)
指数衰减的公式是current_lr = initial_lr * (1 - decay_factor)^t
除了在the code 中它被实现为:
decayed_learning_rate = learning_rate *
decay_rate ^ (global_step / decay_steps)
据我所知,decay_rate 应该是 1 - decay_factor,decay_steps 应该表示在应用衰减之前执行了多少步,在我的例子中是 my_steps_per_epoch*10。对吗?
编辑:
如果我在第 10 个 epoch 之后暂停并保存我的模型(使用回调),然后通过加载模型并使用 initial_epoch=10 和 epochs=11 调用 model.fit 来恢复,它会在第 11 个 epoch 开始并应用指数衰减?
【问题讨论】:
标签: python tensorflow deep-learning learning-rate