【发布时间】:2017-10-13 19:24:55
【问题描述】:
我正在阅读 Sam-Abrahams tensorflow 书。在阅读时,我得到了以下代码,
import tensorflow as tf
with tf.name_scope("Scope_A"):
a = tf.add(1, 2, name="A_add")
b = tf.multiply(a, 3, name="A_mul")
with tf.name_scope("Scope_B"):
c = tf.add(4, 5, name="B_add")
d = tf.multiply(c, 6, name="B_mul")
e = tf.add(b, d, name="output")
writer = tf.summary.FileWriter('./name_scope_1', graph=tf.get_default_graph())
writer.close()
作为名称范围的示例。当我将它加载到张量板上时,我得到了以下图像,
图 1:我生成的图。
但遗憾的是,这本书提出了不同的形象,
图 2 : 本书给出的图
我知道这本书很老了,现在并不是所有的东西都相似。但是从代码和图来看,图 1 中的某些东西看起来很可疑,
with tf.name_scope("Scope_A"):
a = tf.add(1, 2, name="A_add")
b = tf.multiply(a, 3, name="A_mul")
对于给定的“SCOPE_A”,蓝色框是可以的,因为有加法和乘法运算。
但是对于下面的代码,
with tf.name_scope("Scope_B"):
c = tf.add(4, 5, name="B_add")
d = tf.multiply(c, 6, name="B_mul")
没有定义乘法运算。
在右侧,有一些辅助节点。从 SCOPE_A_[0-15],SCOPE_B_[0-15]。这些是什么?
最后是最重要的问题,
如何生成更清晰的图表,就像作者在图 2 中生成的那样。
*UPD 和建议:*
1.如果您正在处理默认图表,请不要忘记重置图表。
tf.reset_default_graph()
2。尝试使用您定义的图表。避免这种情况是最安全的选择。
【问题讨论】:
-
我刚刚运行了代码,结果看起来和你书中的一样(这是我所期望的)。我看到还有一些“SCOPE_A_1”等。1)你确定你没有运行除该代码之外的任何其他东西吗? (也就是说,您只需打开 Python/IPython 解释器,运行它并关闭它)? 2)您确定目标目录中没有以前运行的其他日志数据吗?
-
@jdehesa:感谢您的确认。你说的对。我创建了一个新文件夹并再次运行相同的代码,图表看起来与书相同。我早些时候怀疑这一点,但只删除了目录中“name_scope_1”的文件夹。稍后我重新启动内核并再次运行代码,它也可以工作。
-
@jdehesa : 你能写一个答案吗?