我正在尝试运行100 x 100个不同的简短最小化,而不创建10000个会话和优化程序。
如果每次最小化都创建一个新的AdamOptimizer,则会出现内存不足错误。但是每个优化器都可以工作。损失几乎总是减少。
我尝试以下操作:
optimizer = tf.train.AdamOptimizer(0.1)
for i in range(100):
self.session.run(tf.global_variables_initializer(), feed_dict=...)
tf.variables_initializer(optimizer.variables())
# run 100 minimizations with the optimizer
但是优化器的行为非常奇怪。损失将减少并增加数倍。当损失很小时,它会突然增加很多,如Loss suddenly increases with Adam Optimizer in Tensorflow
AdamOptimizer内部跟踪不使用变量的调用次数:How to initialise only optimizer variables in Tensorflow?
这意味着tf.global_variables_initializer()
无法重置此计数。这可能会导致奇怪的行为。
如何重用AdamOptimizer?