Я смущен относительно того, как оптимизатор adam работает в тензорном потоке.
Как я читал docs, он говорит, что скорость обучения меняется на каждую итерацию с градиентным спусками.
Но когда я вызываю функцию, я даю ей скорость обучения. И я не вызываю функцию, чтобы сказать, сделайте одну эпоху (неявно вызывая # итерации, чтобы пройти через обучение данным). Я вызываю функцию для каждой партии явно, как
for epoch in epochs
for batch in data
sess.run(train_adam_step, feed_dict={eta:1e-3})
Так что моя эта не может меняться. И я не передаю переменную времени. Или это какой-то тип типа генератора, где при создании сеанса t
увеличивается каждый раз, когда я вызываю оптимизатор?
Предполагая, что это какая-то вещь типа генератора, и скорость обучения невидимо снижается: как я могу запустить оптимизатор adam, не разлагая скорость обучения? Мне кажется, что RMSProp в основном то же самое, единственное, что мне нужно сделать, чтобы сделать его равным (скорость обучения не учитывается) заключается в изменении гиперпараметров momentum
и decay
для соответствия beta1
и beta2
соответственно. Это правильно?