Neural-Networks
Keras,SGD 學習率衰減是如何工作的?
如果您查看文檔http://keras.io/optimizers/,SGD中有一個參數用於衰減。我知道這會隨著時間的推移降低學習率。但是,我無法弄清楚它是如何工作的。它是乘以學習率的值,例如
lr = lr * (1 - decay)
指數嗎?另外,我如何查看我的模型使用的學習率?model.optimizer.lr.get_value()
當我在運行幾個時期後進行打印時,即使我設置了衰減,它也會返回原始學習率。我是否必須設置 nesterov=True 才能使用動量,或者我可以使用兩種不同類型的動量。例如,這樣做有沒有意義
sgd = SGD(lr = 0.1, decay = 1e-6, momentum = 0.9, nesterov = False)
您所指的文檔包括對 Python 源代碼的引用(只需單擊
[Source]
相應位置的鏈接),可用於回答您的問題。這是最相關的行,顯示瞭如何decay
修改學習率:lr = self.lr * (1. / (1. + self.decay * self.iterations))
該
nesterov
選項不必設置為 True 才能使用動量;它導致以不同的方式使用動量,從源代碼中再次可以看出:v = self.momentum * m - lr * g # velocity if self.nesterov: new_p = p + self.momentum * v - lr * g else: new_p = p + v