當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.keras.optimizers.schedules.PiecewiseConstantDecay用法及代碼示例


使用分段常數衰減時間表的 LearningRateSchedule。

繼承自:LearningRateSchedule

用法

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

返回

  • 一個 1-arg 可調用學習率計劃,采用當前優化器步驟並輸出衰減的學習率,一個標量Tensor與邊界張量的類型相同。

    接受 step 的 1-arg 函數的輸出是 values[0]step <= boundaries[0] , values[1]step > boundaries[0]step <= boundaries[1] ,...,以及 values[-1] 當 step > boundaries[-1]

參數

  • boundaries Tensor s 或 int s 或 float s 的列表具有嚴格增加的條目,並且所有元素具有與優化器步驟相同的類型。
  • values Tensorfloatint 的列表,指定由 boundaries 定義的間隔的值。它應該比 boundaries 多一個元素,並且所有元素都應該具有相同的類型。
  • name 一個字符串。操作的可選名稱。默認為'PiecewiseConstant'。

拋出

  • ValueError 如果列表中的元素數量不匹配。

當通過當前優化器步驟時,該函數返回一個 1-arg 可調用來計算分段常數。這對於在優化器函數的不同調用中更改學習率值很有用。

示例:前 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 進行序列化和反序列化。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.optimizers.schedules.PiecewiseConstantDecay。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。