我需要每 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
除了在代码中实现为:
decayed_learning_rate = learning_rate *
decay_rate ^ (global_step / decay_steps)
据我所知,在我的情况下,decay_rate
应该1 - decay_factor
并且decay_steps
应该意味着在应用衰减之前执行了多少步骤my_steps_per_epoch*10
。那是对的吗?
编辑:
如果我在第 10 个时期之后暂停并保存我的模型(使用回调),然后通过加载模型并model.fit
使用initial_epoch=10
and调用来恢复epochs=11
,它会在第 11 个时期开始并应用指数衰减吗?