Keras 3 API 文档 / 优化器 / 学习率调度器 API / 分段恒定衰减

分段恒定衰减

[source]

PiecewiseConstantDecay class

keras.optimizers.schedules.PiecewiseConstantDecay(
    boundaries, values, name="PiecewiseConstant"
)

一个使用分段常数衰减调度表的 LearningRateSchedule.

该函数返回一个接受当前优化器步骤的1参数可调用对象,用于计算分段常数衰减. 这在不同的优化器函数调用中改变学习率值时非常有用.

示例:使用一个在前100001步为1.0的学习率,接下来的10000步为0.5, 之后的所有步为0.1.

step = ops.array(0)
boundaries = [100000, 110000]
values = [1.0, 0.5, 0.1]
learning_rate_fn = keras.optimizers.schedules.PiecewiseConstantDecay(
    boundaries, values)

# 稍后,每当我们执行优化步骤时,我们传入步骤.
learning_rate = learning_rate_fn(step)

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

参数: boundaries: 一个严格递增的Python数字列表,所有元素的类型与优化器步骤相同. values: 一个Python数字列表,指定由 boundaries 定义的区间值. 它应该比 boundaries 多一个元素,所有元素应具有相同的类型. name: 一个字符串.操作的可选名称.默认为 "PiecewiseConstant".

返回: 一个1参数可调用的学习率调度表,接受当前优化器步骤并输出衰减的学习率, 一个与边界张量类型相同的标量张量.

1参数函数的输出,当 `step <= boundaries[0]` 时为 `values[0]`,
当 `step > boundaries[0]` 且 `step <= boundaries[1]` 时为 `values[1]`,
..., 当 `step > boundaries[-1]` 时为 `values[-1]`.

引发: ValueError: 如果 boundariesvalues 列表中的元素数量不匹配.