分段常数衰减

[源代码]

PiecewiseConstantDecay

tf_keras.optimizers.schedules.PiecewiseConstantDecay(boundaries, values, name=None)

使用分段常数衰减计划的学习率计划 (LearningRateSchedule)。

该函数返回一个单参数可调用对象,用于在传递当前优化器步数时计算分段常数。这对于在优化器函数不同调用之间更改学习率值很有用。

示例

使用一个学习率,在最初的 100001 步中为 1.0,接下来的 10000 步中为 0.5,任何额外的步数中为 0.1。

step = tf.Variable(0, trainable=False)
boundaries = [100000, 110000]
values = [1.0, 0.5, 0.1]
learning_rate_fn = keras.optimizers.schedules.PiecewiseConstantDecay(
    boundaries, values)

# Later, whenever we perform an optimization step, we pass in the step.
learning_rate = learning_rate_fn(step)

您可以将此调度器直接作为学习率传递给tf.keras.optimizers.Optimizer。学习率调度器也可以使用tf.keras.optimizers.schedules.serializetf.keras.optimizers.schedules.deserialize进行序列化和反序列化。

返回

一个单参数可调用学习率计划,它接收当前优化器步数并输出衰减的学习率,这是一个与边界张量类型相同的标量 Tensor

step <= boundaries[0] 时,单参数函数(接收 step)的输出为 values[0];当 step > boundaries[0]step <= boundaries[1] 时,输出为 values[1];以此类推,当 step > boundaries[-1] 时,输出为 values[-1]。