CosineDecayRestarts
classkeras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps,
t_mul=2.0,
m_mul=1.0,
alpha=0.0,
name="SGDRDecay",
)
一个使用带有重启的余弦衰减调度器的LearningRateSchedule
.
参见 Loshchilov & Hutter, ICLR2016, SGDR: Stochastic Gradient Descent with Warm Restarts.
在训练模型时,随着训练的进行降低学习率通常是有用的.该调度器应用带有重启的余弦衰减函数到优化器步骤,给定一个提供的初始学习率.
它需要一个step
值来计算衰减的学习率.你可以直接传递一个在后端变量,在每次训练步骤中递增.
该调度器是一个1-arg可调用对象,当传递当前优化器步骤时,生成一个衰减的学习率.这对于在不同优化器函数调用中改变学习率值很有用.
学习率乘数首先在first_decay_steps
步骤中从1衰减到alpha
.然后,执行一次热重启.每个新的热重启运行t_mul
倍多的步骤,并以m_mul
倍初始学习率作为新的学习率.
示例:
first_decay_steps = 1000
lr_decayed_fn = (
keras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps))
你可以将此调度器直接传递给keras.optimizers.Optimizer
作为学习率.学习率调度器也可以使用keras.optimizers.schedules.serialize
和keras.optimizers.schedules.deserialize
进行序列化和反序列化.
参数:
initial_learning_rate: 一个Python浮点数.初始学习率.
first_decay_steps: 一个Python整数.衰减的步骤数.
t_mul: 一个Python浮点数.用于推导第i个周期的迭代次数.
m_mul: 一个Python浮点数.用于推导第i个周期的初始学习率.
alpha: 一个Python浮点数.最小学习率值作为initial_learning_rate
的分数.
name: 字符串.操作的可选名称.默认为"SGDRDecay"
.
返回:
一个1-arg可调用学习率调度器,接受当前优化器步骤并输出衰减的学习率,一个与initial_learning_rate
类型相同的标量张量.