LearningRateSchedule
類別keras.optimizers.schedules.LearningRateSchedule()
學習率排程的基礎類別。
您可以使用學習率排程來調整優化器的學習率如何隨時間變化。
有幾種內建的學習率排程可用,例如 keras.optimizers.schedules.ExponentialDecay
或 keras.optimizers.schedules.PiecewiseConstantDecay
lr_schedule = keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=1e-2,
decay_steps=10000,
decay_rate=0.9)
optimizer = keras.optimizers.SGD(learning_rate=lr_schedule)
一個 LearningRateSchedule
實例可以作為任何優化器的 learning_rate
參數傳遞。
要實作您自己的排程物件,您應該實作 __call__
方法,該方法接受一個 step
參數(純量整數張量,當前的訓練步驟計數)。與任何其他 Keras 物件一樣,您也可以選擇透過實作 get_config
和 from_config
方法使您的物件可序列化。
範例
class MyLRSchedule(keras.optimizers.schedules.LearningRateSchedule):
def __init__(self, initial_learning_rate):
self.initial_learning_rate = initial_learning_rate
def __call__(self, step):
return self.initial_learning_rate / (step + 1)
optimizer = keras.optimizers.SGD(learning_rate=MyLRSchedule(0.1))