Keras 2 API 文档 / 优化器 / 学习率调度器 API / CosineDecayRestarts

CosineDecayRestarts

[源]

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.serializetf.keras.optimizers.schedules.deserialize 进行序列化和反序列化。

返回值

一个接受一个参数的可调用学习率调度器,它接受当前的优化器步数,并输出衰减后的学习率,这是一个与 `initial_learning_rate` 类型相同的标量 `Tensor`。