python - 重用 AdamOptimizer 并避免奇怪的行为/内存不足
问题描述
我试图在不创建 10000 个会话和优化器的情况下运行 100 x 100 个不同的短期最小化。
如果我为每个最小化创建一个新的 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
但是优化器的行为很奇怪。损失会数次减少和增加。当损失很小时,它会突然增加很多,就像在Tensorflow中使用Adam Optimizer的损失突然增加一样
AdamOptimizer 在内部跟踪它在不使用变量的情况下被调用的次数:如何在 Tensorflow 中仅初始化优化器变量?
这意味着tf.global_variables_initializer()
无法重置此计数。这可能会导致奇怪的行为。
如何重用 AdamOptimizer?
解决方案
推荐阅读
- python - TensorFlow py_function 设置返回值形状
- mysql - 更新并选择具有非唯一标识符的 FIFO 队列中的 MySQL 表
- r - Shiny App 未使用 dplyr 和 %in% 运算符进行过滤
- blockchain - Chainlink 消费者合约中回调地址的用途是什么?
- google-analytics - 无法在 Google Analytics(分析)中配置目标
- javascript - React 钩子形式 - 对话框内的字段数组(材料 UI)
- r - Rollapply 或类似的时间序列数据中的多条件阈值
- reactjs - 类型'FC
' 不可分配给类型 - css - Mediawiki 网站上的级联下拉菜单
- oracle - dbms_output.put_line 不适用于类型变量