为什么删除事件文件后旧节点仍然可见 [Tensorflow]?

Why old nodes are visible even after deleting event files [Tensorflow]?

刚开始学习tensorflow,在Jupyter-Notebook写了如下一段代码:

a = tf.placeholder(tf.float32,shape=[3,3],name='X')
b = tf.constant([[5,5,5],[2,3,4],[4,5,6]],tf.float32,name='Y')
c = tf.matmul(a,b)

with tf.Session() as sess:
    writer = tf.summary.FileWriter('./graphs',sess.graph)
    print (sess.run(c,feed_dict={a:[[2,3,4],[4,5,6],[6,7,8]]}))

writer.close()

运行 tensorboard第一次,给单X,Y和mult节点如下:

然而,当我再次编译我的代码时 (ctrl+enter),张量板现在复制了原始图形。

我试图通过以下方式解决这个问题(删除旧的死节点):
1. 删除事件文件。
2.删除包含多个相同代码事件文件的整个目录。
3. 运行 fuser 6006/tcp -k 在tensorboard命令行调用之前。

但即使在那之后,当我 运行 tensorboard 时,它也会显示重复的副本。

唯一可行的解​​决方案是在代码开头使用 tf.reset_default_graph()shut the notebook down and restart it.

重置图表

我的问题是:
1. 为什么是 even after deleting the event files, the older dead nodes keep showing up on the tensorboard ?是的,我什至在每次尝试后都重新启动了 Tensorboard,但重复项仍然存在。
2.除了我上面列出的两种方法之外,还有什么方法可以摆脱死节点?

你描述的节点没有死。它们仍然存在并且可以使用。

当您第一次 运行 您的代码时,节点会创建并添加到图中。当您第二次执行同一个单元格时,它们会以不同的名称再添加一次。

如果您将 .py 文件中的代码复制两次,也可以实现同样的效果。

您使用 的解决方案是正确的。重新启动笔记本电脑是有效的,因为内存中的所有信息都已删除。与重新运行ning .py 文件相同。

你删除偶数文件的东西不起作用,因为尽管文件被删除了,添加到内存中图形的节点仍然存在。

我也遇到了张量板显示重复图表的同样问题。我尝试了几种措施,例如删除事件文件,删除包含事件文件的日志目录,但 tensorboard 仍然会记住之前 运行 的节点和图表,并将它们一个接一个地显示为副本。

我注意到每次 运行 代码 tensorflow 都会创建相同的节点但名称不同,这意味着它仍将旧节点保留在内存中。在 python 执行中看起来像这样 window:

先运行之后:

在第 2 次和第 3 次 运行 代码之后:

这解决了问题

1)每次运行前重启内核解决问题

2) 如楼上帖子所述,在代码开头添加tf.reset_default_graph()也解决了问题。