學習率排程

[原始碼]

LearningRateSchedule 類別

keras.optimizers.schedules.LearningRateSchedule()

學習率排程的基礎類別。

您可以使用學習率排程來調整您的最佳化器的學習率隨時間的變化方式。

有幾個內建的學習率排程可供使用,例如 keras.optimizers.schedules.ExponentialDecaykeras.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_configfrom_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))