【问题标题】:Tensorflow: add a scalar_summary to SummaryWriter without session.run() [duplicate]Tensorflow:在没有 session.run() 的情况下将 scalar_summary 添加到 SummaryWriter [重复]
【发布时间】:2016-11-15 03:59:01
【问题描述】:

我想知道这是否是在不使用 session.run() 获取摘要的情况下将 scalar_summary 添加到 SummaryWriter 的直接方法。

通常获取和添加摘要的代码是:

with tf.Session() as sess:
    writer = tf.train.SummaryWriter("./logs", sess.graph)
    merged = tf.merge_all_summaries()
    summary, acc = sess.run([merged, acc_op], feed_dict)
    writer.add_summary(summary, current_step) #Save summary at some checkpoint step

但是,我只是想将训练后检索和处理的准确率值和损失值绘制为 tensorboard 上的折线图:

with tf.Session() as sess:
    writer = tf.train.SummaryWriter("./logs", sess.graph)
    acc, loss = sess.run([acc_op, loss_op], feed_dict) #Only the get accuracy and loss
    acc = acc*100

    tf.scalar_summary('accuracy', acc)
    tf.scalar_summary('loss', loss)

    merged = tf.merge_all_summaries() #Merge all the summaries into one
    writer.add_summary(merged, current_step) #Save summary at some checkpoint step

上面的代码会打印出这个错误:

TypeError: Parameter to MergeFrom() must be instance of same class: expected Summary got Tensor. for field Event.summary

任何帮助或建议将不胜感激。

【问题讨论】:

    标签: python tensorflow tensorboard


    【解决方案1】:

    您必须使用摘要编写器将 acc_op 和 loss_op 的一系列值写入磁盘,然后 tensorboard 从中读取。

    或者您可以将 acc_op 和 loss_op 的值存储到一个数组中,并在训练完成后将它们绘制出来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 2014-01-27
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多