Если вы посмотрите документацию 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)
источник
self.iterations
относится к числу отдельных шагов SGD, а не к числу эпох, верно?