LearningRateSchedule
类keras.optimizers.schedules.LearningRateSchedule()
学习率调度器的基类。
你可以使用学习率调度器来调整优化器的学习率随时间的变化方式。
有几个内置的学习率调度器可用,例如 keras.optimizers.schedules.ExponentialDecay
或 keras.optimizers.schedules.PiecewiseConstantDecay
lr_schedule = keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=1e-2,
decay_steps=10000,
decay_rate=0.9)
optimizer = keras.optimizers.SGD(learning_rate=lr_schedule)
LearningRateSchedule
实例可以作为任何优化器的 learning_rate
参数传入。
要实现你自己的调度器对象,你应该实现 __call__
方法,该方法接收一个 step
参数(标量整数张量,当前的训练步数)。 像任何其他 Keras 对象一样,你还可以选择通过实现 get_config
和 from_config
方法来使你的对象可序列化。
示例
class MyLRSchedule(keras.optimizers.schedules.LearningRateSchedule):
def __init__(self, initial_learning_rate):
self.initial_learning_rate = initial_learning_rate
def __call__(self, step):
return self.initial_learning_rate / (step + 1)
optimizer = keras.optimizers.SGD(learning_rate=MyLRSchedule(0.1))