【发布时间】:2019-08-06 00:16:54
【问题描述】:
我对 TensorFlow 的内部结构相当陌生。为了试图理解 TensorFlow 的 AdamOptimizer 实现,我检查了 TensorBoard 中的相应子图。似乎有一个名为name + '_1' 的重复子图,默认情况下是name='Adam'。
以下 MWE 生成下图。 (注意我已经扩展了x 节点!)
import tensorflow as tf
tf.reset_default_graph()
x = tf.Variable(1.0, name='x')
train_step = tf.train.AdamOptimizer(1e-1, name='MyAdam').minimize(x)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
with tf.summary.FileWriter('./logs/mwe') as writer:
writer.add_graph(sess.graph)
我很困惑,因为我希望上面的代码在图中只生成一个命名空间。即使在检查了相关的源文件(即adam.py、optimizer.py 和training_ops.cc)之后,我也不清楚副本是如何/为什么/在哪里创建的。
问题:重复的AdamOptimizer 子图的来源是什么?
我能想到以下几种可能:
- 我的代码中的一个错误
- TensorBoard 中生成的某种工件
- 这是预期行为(如果是,那为什么?)
- TensorFlow 中的一个错误
编辑:清理和澄清
由于最初的一些混淆,我在最初的问题中添加了有关如何使用 TensorFlow/TensorBoard 设置可重现环境的详细说明,以重现此图。我现在已经用关于扩展 x 节点的说明替换了所有这些。
【问题讨论】:
-
@P-Gn,我可以在 1.13.1 中重现该问题。在我的编辑中查看详细信息。有什么想法吗?
-
我现在想知道这是否更适合作为 GitHub 问题。如果有这样的建议,我可以将其复制粘贴到 GitHub 并删除 SO 问题。 (我不知道应该在哪里区分 GitHub 问题和 SO 问题。)
-
TF 1.12 和 1.13 也无法重现您的错误
-
感谢您对我的包容。我刚刚提供了在 GCP 上重现的确切步骤。我比以往任何时候都更困惑为什么其他人无法重现这一点。
-
是的,你是对的,我怎么会错过它。似乎所有优化器都是这种情况,它们会创造额外的价值。但似乎主要是可视化问题,因为我在图表或 savrd 检查点中看不到任何附加值
标签: python tensorflow tensorboard