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
类型相同的标量张量。