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