CosineDecayRestarts
類別keras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps,
t_mul=2.0,
m_mul=1.0,
alpha=0.0,
name="SGDRDecay",
)
一個 LearningRateSchedule
,使用帶有重啟的餘弦退火排程。
請參閱 Loshchilov & Hutter, ICLR2016, SGDR:帶有暖啟動的隨機梯度下降法 (Stochastic Gradient Descent with Warm Restarts)。
在訓練模型時,隨著訓練進度降低學習率通常很有用。此排程將帶有重啟的餘弦退火函數應用於優化器步驟,並給定提供的初始學習率。它需要一個 step
值來計算衰減後的學習率。您可以直接傳遞一個後端變數,該變數會在每個訓練步驟中遞增。
此排程是一個單參數可調用物件,當傳遞目前的優化器步驟時,會產生衰減後的學習率。這對於在優化器函數的不同調用之間更改學習率值非常有用。
學習率乘數首先在 first_decay_steps
步驟中從 1 衰減到 alpha
。然後,執行暖啟動。每次新的暖啟動運行的步數是之前的 t_mul
倍,且初始學習率是新學習率的 m_mul
倍。
範例
first_decay_steps = 1000
lr_decayed_fn = (
keras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps))
您可以將此排程直接傳遞到 keras.optimizers.Optimizer
中作為學習率。學習率排程也可以使用 keras.optimizers.schedules.serialize
和 keras.optimizers.schedules.deserialize
進行序列化和反序列化。
參數
initial_learning_rate
的一部分比例。"SGDRDecay"
。回傳值
一個單參數可調用學習率排程,它接受目前的優化器步驟並輸出衰減後的學習率,這是一個與 initial_learning_rate
類型相同的純量張量。