【问题标题】:Tensorboad - add_summary makes my code crashesTensorboard - add_summary 让我的代码崩溃
【发布时间】:2016-08-03 06:15:20
【问题描述】:

我对 tensorflow 很陌生,我尝试展示我的第一个 tensorboard。

我下载并执行了此处给出的示例的板子 https://www.tensorflow.org/versions/r0.7/how_tos/summaries_and_tensorboard/index.html

按照方法,我的代码中有:

weights_hidden = tf.Variable(tf.truncated_normal([image_size * image_size, 1024]), name='weights_hidden')
_ = tf.histogram_summary('weights_hidden', weights_hidden)

当我运行会话时

with tf.Session(graph=graph) as session:
  merged = tf.merge_all_summaries()
  writer = tf.train.SummaryWriter("/tmp/test", session.graph_def)
  tf.initialize_all_variables().run()
  for step in range(num_steps):
    summary_str, l, predictions = session.run(
      [optimizer, loss, train_prediction], feed_dict=feed_dict)

    if (step % 500 == 0):
      writer.add_summary(summary_str, step)

进程崩溃并出现以下错误

Traceback (most recent call last):
  File "/home/xxx/Desktop/xxx/xxx.py", line 108, in <module>
    writer.add_summary(summary_str, step)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/summary_io.py", line 128, in add_summary
    event = event_pb2.Event(wall_time=time.time(), summary=summary)
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/internal/python_message.py", line 522, in init
    _ReraiseTypeErrorWithFieldName(message_descriptor.name, field_name)
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/internal/python_message.py", line 453, in _ReraiseTypeErrorWithFieldName
    six.reraise(type(exc), exc, sys.exc_info()[2])
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/internal/python_message.py", line 520, in init
    copy.MergeFrom(new_val)
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/internal/python_message.py", line 1237, in MergeFrom
    "expected %s got %s." % (cls.__name__, type(msg).__name__))
TypeError: Parameter to MergeFrom() must be instance of same class: expected Summary got NoneType. for field Event.summary

我错过了什么? 非常欢迎任何帮助/评论

非常感谢您的帮助

K。

【问题讨论】:

    标签: python-2.7 tensorflow tensorboard


    【解决方案1】:

    你应该写:

    _, summary_str, l, predictions = session.run(
      [optimizer, merged, loss, train_prediction], feed_dict=feed_dict)
    

    我添加了第 4 个参数 merged,它对应于您尝试获得的摘要(您只获得了优化步骤的结果)。

    【讨论】:

    • 是的!它现在又可以正常运行了 :) (虽然慢得多,但很有意义)谢谢 Olivier
    • 如果你知道为什么它在 0.0.0.0:6006/#histograms 上不可见我很感兴趣 ;) 它说“没有找到直方图标签。”即使在重新启动 tensorboard 并再次运行代码之后
    • 你的 tensorboard 命令还好吗?应该是tensor board --logdir /tmp/test 你也可以通过打印你的损失来检查是否一切正常l
    • 不,张量和板之间没有空间(我相信它是正确的)。我运行tensorboard --logdir=/temp/test(运行代码时在文件夹中创建文件)
    • 我的错是tensorboard(这是我自动更正的)。检查您在命令行和代码中是否具有相同的名称“/tmp/test”。你是否成功地打印了每一步的损失?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 2011-11-18
    • 1970-01-01
    相关资源
    最近更新 更多