Keras 3 API 文件 / 優化器 / 學習率排程 API / 分段常數衰減

分段常數衰減

[原始碼]

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 列表中的元素數量不匹配。