TensorFlow基准测试图查看求助:Inception3图无法在TensorBoard显示
解决TensorFlow基准测试中Inception3计算图无法在TensorBoard显示的问题
你用--graph_file生成图文件再尝试用TensorBoard查看的思路是对的,但问题出在TensorBoard的读取规则上——它默认不会直接识别--logdir目录下的单独图文件,所以才会出现"No graph definition files were found"的提示。下面给你两种可行的正确操作方式:
方式一:直接用TensorBoard的--graph参数指定图文件
- 首先确保基准测试工具正确生成计算图文件,运行命令时明确指定输出路径和格式(推荐
.pbtxt可读格式或.pb二进制格式):python tensorflow/core/profiler/g3doc/benchmarks/benchmark.py --model=Inception3 --graph_file=/your/save/path/inception3_graph.pbtxt - 启动TensorBoard时,不能只传图文件所在目录给
--logdir,需要搭配--graph参数直接指定生成的图文件路径,同时--logdir要填一个存在的目录(哪怕是空的,因为TensorBoard启动必须要有这个参数):
如果生成的是二进制tensorboard --logdir=/tmp/empty_dir --graph=/your/save/path/inception3_graph.pbtxt.pb文件,把上述命令里的.pbtxt换成.pb即可。启动后打开TensorBoard的Graph标签就能看到Inception3的计算图了。
方式二:将图写入事件文件后用--logdir读取
如果你更习惯用--logdir直接加载,可以写一段简单的脚本把生成的图文件转换成TensorBoard能识别的事件文件:
import tensorflow as tf from tensorflow.core.protobuf import saved_model_pb2 # 读取生成的pb/pbtxt图文件 with open('/your/save/path/inception3_graph.pb', 'rb') as f: graph_def = tf.compat.v1.GraphDef() graph_def.ParseFromString(f.read()) # 将图写入事件文件 with tf.compat.v1.Session() as sess: sess.graph.as_default() tf.import_graph_def(graph_def) writer = tf.compat.v1.summary.FileWriter('/your/log/path', sess.graph) writer.close()
然后启动TensorBoard:
tensorboard --logdir=/your/log/path
同样在Graph标签下就能查看计算图了。
内容的提问来源于stack exchange,提问作者Elad Weiss
相关产品推荐
相关产品推荐

