合并张量板摘要时出错
Posted
技术标签:
【中文标题】合并张量板摘要时出错【英文标题】:error while merging summaries for tensorboard 【发布时间】:2016-02-19 18:17:36 【问题描述】:我正在尝试为 MNIST 初学者教程生成图表,但出现以下错误。由于某种原因,merged_summary_op 对象为 None。
Traceback (most recent call last):
File "mnist1.py", line 48, in <module>
summary_str = sess.run(merged_summary_op)
File "/home/vagrant/anaconda2/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 307, in run
% (subfetch, fetch, type(subfetch), e.message))
TypeError: Fetch argument None of None has invalid type <type 'NoneType'>, must be a string or Tensor. (Can not convert a NoneType into a Tensor or Operation.)
我想我在这里错过了一步。我先启动会话,然后运行语句:
merged_summary_op = tf.merge_all_summaries()
【问题讨论】:
【参考方案1】:我有同样的错误。
就我而言,在调用tf.merge_all_summaries()
之前添加至少一个tf.scalar_summary()
解决了这个问题。
例如,
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
tf.scalar_summary("cross_entropy", cross_entropy)
merged_summary_op = tf.merge_all_summaries()
我希望这个 sn-p 对你有帮助。
【讨论】:
我也想这样做,但仍在尝试理解为什么示例代码没有收集标量/直方图摘要:github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/… 因为示例代码在mnist.py(由fully_connected_feed.py导入)中定义的training()中调用了tf.scalar_summary()。见github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/… 添加代码以合并摘要会导致以下错误,否则运行正常。You must feed a value for placeholder tensor 'Placeholder_1' wi th dtype float . . . . . . .Caused by op u'Placeholder', defined at: File "mnist1.py", line 9, in <module> x = tf.placeholder("float", [None, 784])
我认为您的问题是您在运行会话时缺少指定占位符。您必须在运行会话以合并摘要时指定占位符。 github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/… 就是一个很好的例子。
是的,如果调用tf.merge_all_summaries()之前没有summary,会返回None,导致异常。在只想从循环中收集数据的情况下,事先创建一个无意义的标量摘要似乎有点拖沓,为了我的钱,他们应该在这种情况下使用 tf.merge_summary() 手动收集摘要。
以上是关于合并张量板摘要时出错的主要内容,如果未能解决你的问题,请参考以下文章