这是我的问题: 如何每n个小批量重置Tensorflow Adam Optimizer内部状态?
通过内部状态,我指的是m(t),过去的梯度和v(t),过去的平方梯度,参数。
答案 0 :(得分:3)
我会这样做:
或用代码编写(你可能想要一个比'Adam'更好的名字):
optimizer = tf.train.AdamOptimizer(learning_rate=0.001, name='Adam').minimize(loss)
adam_vars = [var for var in tf.all_variables() if 'Adam' in var.name]
sess.run(tf.variables_initializer(adam_vars))
编辑(25.04.2019):
有一种更简单的方法:
optimizer = tf.train.AdamOptimizer()
train_op = optimizer.minimize(loss)
sess.run(tf.variables_initializer(optimizer.variables()))