请考虑以下信息:
-
初始学习率:0.0002
-
衰减系数:0.7
-
轮次:70
我的问题是要选择衰减步长,使得每两轮发生一次衰减。我该如何在Keras中实现这一点?
这是指数衰减学习率的公式:
回答:
似乎可以使用ExponentialDecay LearningRateScheduler
。为了每两轮衰减一次,decay_steps
应该设置为 num_steps_per_epoch * 2
。同时,提供 staircase
参数并将其设置为 True
,以便学习率以离散方式衰减。
类似这样的代码(我没有运行过这段代码):
initial_learning_rate = 0.0002steps_per_epoch = ...lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay( initial_learning_rate, decay_steps=steps_per_epoch * 2, decay_rate=0.7, staircase=True)
然后将 lr_schedule
传递给 Adam
,使用 learning_rate
参数。