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)的 1 参数可调用学习速率计划。