LearningRateSchedule classkeras.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)
任何优化器的 learning_rate 参数都可以传入一个 LearningRateSchedule 实例.
要实现您自己的调度对象,您应该实现 __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))