Keras 3 API 文件 / 最佳化器 / 學習率排程 API / PiecewiseConstantDecay

PiecewiseConstantDecay

[原始碼]

PiecewiseConstantDecay 類別

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

一個使用階梯式常數衰減排程的 LearningRateSchedule

此函數返回一個單參數可呼叫物件,用於在傳遞目前最佳化器步驟時計算階梯式常數。這對於在不同最佳化器函數調用之間更改學習率值非常有用。

範例

使用在首 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)

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

您可以直接將此排程傳遞到 keras.optimizers.Optimizer 中作為學習率。學習率排程也可以使用 keras.optimizers.schedules.serializekeras.optimizers.schedules.deserialize 進行序列化和反序列化。

參數

  • boundaries:一個 Python 數字列表,其中條目嚴格遞增,且所有元素都與最佳化器步驟具有相同的類型。
  • values:一個 Python 數字列表,指定由 boundaries 定義的間隔的值。它應該比 boundaries 多一個元素,並且所有元素都應具有相同的類型。
  • name:一個字串。操作的可選名稱。預設為 "PiecewiseConstant"

返回值

一個單參數可呼叫學習率排程,它接受目前最佳化器步驟並輸出衰減的學習率,一個與邊界張量類型相同的純量張量。

接受 step 的單參數函數的輸出在 step <= boundaries[0] 時為 values[0],在 step > boundaries[0]step <= boundaries[1] 時為 values[1],...,以及在 step > boundaries[-1] 時為 values[-1]

引發

  • ValueError:如果 boundariesvalues 列表中的元素數量不符。