CosineDecayRestarts
类keras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps,
t_mul=2.0,
m_mul=1.0,
alpha=0.0,
name="SGDRDecay",
)
使用带重启的余弦衰减调度的 LearningRateSchedule
。
参见 Loshchilov & Hutter, ICLR2016, SGDR: 带有热重启的随机梯度下降。
在训练模型时,随着训练的进行降低学习率通常很有用。此调度器根据提供的初始学习率,将带重启的余弦衰减函数应用于优化器步骤。它需要一个 step
值来计算衰减的学习率。你可以直接传递一个你在每个训练步骤中递增的后端变量。
此调度器是一个接受一个参数的可调用对象,当传入当前优化器步骤时,它会生成一个衰减的学习率。这对于在优化器函数的不同调用中更改学习率值很有用。
学习率乘数首先在 first_decay_steps
步中从 1 衰减到 alpha
。然后,执行一次热启动。每个新的热启动运行的步数是之前的 t_mul
倍,并且其初始学习率是新的学习率的 m_mul
倍。
示例
first_decay_steps = 1000
lr_decayed_fn = (
keras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps))
你可以将此调度器直接作为学习率传递给 keras.optimizers.Optimizer
。学习率调度器也可以使用 keras.optimizers.schedules.serialize
和 keras.optimizers.schedules.deserialize
进行序列化和反序列化。
参数
initial_learning_rate
的分数。"SGDRDecay"
。返回
一个接受一个参数的可调用学习率调度,该参数为当前的优化器步数,并输出衰减后的学习率,一个与 initial_learning_rate
类型相同的标量张量。