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.serialize
和 tf.keras.optimizers.schedules.deserialize
進行序列化和反序列化。
返回
一個接受 1 個參數的可呼叫學習率排程,它接受目前的優化器步驟並輸出衰減的學習率,一個與 initial_learning_rate
類型相同的純量 Tensor
。