CosineDecayRestarts
类keras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps,
t_mul=2.0,
m_mul=1.0,
alpha=0.0,
name="SGDRDecay",
)
一个使用带重启的余弦衰减 schedules 的 LearningRateSchedule
。
参见 Loshchilov & Hutter, ICLR2016, SGDR: Stochastic Gradient Descent with Warm Restarts。
在训练模型时,通常需要在训练过程中降低学习率。此 schedule 将带重启的余弦衰减函数应用于优化器步骤,给定提供的初始学习率。它需要一个 step
值来计算衰减的学习率。您可以直接传递一个后端变量,该变量在每个训练步骤中递增。
该 schedule 是一个 1-arg 可调用对象,当传递当前优化器步骤时,它会生成衰减的学习率。这对于在优化器函数的不同调用中更改学习率值非常有用。
学习率乘数首先从 1 衰减到 alpha
,持续 first_decay_steps
步。然后,执行热重启。每个新的热重启运行的时间步数是之前的 t_mul
倍,初始学习率是之前的 m_mul
倍作为新的学习率。
示例
first_decay_steps = 1000
lr_decayed_fn = (
keras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps))
您可以将此 schedule 直接传递到 keras.optimizers.Optimizer
中作为学习率。学习率 schedule 也可以使用 keras.optimizers.schedules.serialize
和 keras.optimizers.schedules.deserialize
进行序列化和反序列化。
参数
initial_learning_rate
的一部分。"SGDRDecay"
。返回值
一个 1-arg 可调用学习率 schedule,它接受当前的优化器步骤并输出衰减的学习率,一个与 initial_learning_rate
类型相同的标量张量。