Keras 3 API 文档 / 优化器 / 学习率调度器 API / LearningRateSchedule

学习率调度器 (LearningRateSchedule)

[源]

LearningRateSchedule

keras.optimizers.schedules.LearningRateSchedule()

学习率调度器的基类。

你可以使用学习率调度器来调整优化器的学习率随时间的变化。

提供了多种内置的学习率调度器,例如 keras.optimizers.schedules.ExponentialDecaykeras.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_configfrom_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))