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