Keras 2 API 文件 / 優化器 / 學習率排程 API / CosineDecayRestarts

CosineDecayRestarts

[原始碼]

CosineDecayRestarts 類別

tf_keras.optimizers.schedules.CosineDecayRestarts(
    initial_learning_rate, first_decay_steps, t_mul=2.0, m_mul=1.0, alpha=0.0, name=None
)

一個使用帶有重啟的餘弦衰減排程的 LearningRateSchedule。

請參閱 Loshchilov & Hutter, ICLR2016, SGDR:帶有暖重啟的隨機梯度下降。

在訓練模型時,通常在訓練進度中降低學習率會很有幫助。這個排程將帶有重啟的餘弦衰減函數應用於優化器步驟,給定一個提供的初始學習率。它需要一個 step 值來計算衰減的學習率。您只需傳遞一個 TensorFlow 變數,該變數會在每個訓練步驟中遞增。

該排程是一個接受 1 個參數的可呼叫物件,當傳遞目前的優化器步驟時,會產生衰減的學習率。這對於在不同優化器函數的呼叫中更改學習率值很有用。

學習率乘數首先在 first_decay_steps 步驟內從 1 衰減到 alpha。然後,執行暖重啟。每個新的暖重啟運行時間為 t_mul 倍的步驟,並以 m_mul 倍的初始學習率作為新的學習率。

使用範例

first_decay_steps = 1000
lr_decayed_fn = (
  tf.keras.optimizers.schedules.CosineDecayRestarts(
      initial_learning_rate,
      first_decay_steps))

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

返回

一個接受 1 個參數的可呼叫學習率排程,它接受目前的優化器步驟並輸出衰減的學習率,一個與 initial_learning_rate 類型相同的純量 Tensor