TensorFlow图无法绘制求助:TensorBoard显示无关main/auxiliary图
解决TensorBoard显示main和auxiliary图与代码逻辑不符的问题
嘿,我来帮你搞定这个TensorBoard的小问题!
首先咱们先弄明白为啥会出现两个图:你用的是TensorFlow 1.x版本(从tf.Session()就能看出来),在这个版本里,TensorBoard默认会把计算图拆分成main和auxiliary两个分组——main是你自己定义的计算节点,auxiliary则是TensorFlow内部的一些辅助节点(比如初始化操作、默认变量管理节点之类的)。但你的代码非常简单,没有这些内部节点,所以可能auxiliary图是空的,而main图里才是你真正的a*b计算逻辑。
不过如果你不想看到多余的分组,或者确实觉得显示的图和代码对不上,试试下面这几个解决方案:
方案1:显式创建自定义计算图
通过显式创建自己的图,避免TensorFlow默认图混入内部节点,代码修改如下:
import tensorflow as tf # 显式创建属于你自己的计算图 custom_graph = tf.Graph() with custom_graph.as_default(): # 给节点加上名字,方便在TensorBoard里识别 a = tf.constant(1.0, name="input_a") b = tf.constant(2.0, name="input_b") c = tf.multiply(a, b, name="multiply_result") # 使用自定义图启动会话 with tf.Session(graph=custom_graph) as sess: # 把自定义图传给FileWriter,而不是sess.graph writer = tf.summary.FileWriter("E:/python_prog", custom_graph) print(sess.run(c)) writer.close()
方案2:清空旧日志文件再重新生成
有时候logdir目录里残留的旧日志会干扰TensorBoard的显示。你可以先删除E:/python_prog目录下的所有文件,然后重新运行你的代码生成新的日志,再启动TensorBoard试试。
方案3:在TensorBoard里切换到main图查看
如果上面的方法都不想试,你可以直接在TensorBoard的图可视化界面顶部,找到图的下拉选择框,切换到main选项,就能看到你定义的a、b、c三个节点的计算关系了。
内容的提问来源于stack exchange,提问作者Vivek
相关产品推荐
相关产品推荐

