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
)
一个使用带重启的余弦衰减调度的学习率调度器。
参见 Loshchilov 和 Hutter,ICLR2016,SGDR:带暖重启的随机梯度下降。
在训练模型时,随着训练的进行降低学习率通常很有用。此调度器根据提供的初始学习率,将带重启的余弦衰减函数应用于优化器步数。它需要一个 `step` 值来计算衰减后的学习率。你可以直接传递一个在每个训练步中递增的 TensorFlow 变量。
该调度器是一个接受一个参数的可调用对象,当传入当前的优化器步数时,它会产生衰减后的学习率。这对于在优化器函数的不同调用中改变学习率值非常有用。
学习率乘数首先在 `first_decay_steps` 步内从 1 衰减到 `alpha`。然后执行一次暖重启。每一次新的暖重启运行的步数是之前的 `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
进行序列化和反序列化。
返回值
一个接受一个参数的可调用学习率调度器,它接受当前的优化器步数,并输出衰减后的学习率,这是一个与 `initial_learning_rate` 类型相同的标量 `Tensor`。