【问题标题】:Saving more than one scalar to TensorBoard将多个标量保存到 TensorBoard
【发布时间】:2019-05-18 01:43:01
【问题描述】:

我处于 Eager 模式,我正在尝试在 TensorBoard 中绘制一些标量的演变。 我已经设法做到这一点 - 损失函数 - 通过使用:

        summary_writer = tf.contrib.summary.create_file_writer(log_dir, flush_millis=10000)
        with summary_writer.as_default(), tf.contrib.summary.always_record_summaries():
        tf.contrib.summary.scalar("loss", curr_loss)

但是,如果我添加另一行代码

        tf.contrib.summary.scalar("phi", phi)

那么它就不会被记录下来(或者至少它不会出现在 TensorBoard 中)。我找不到很多这方面的参考资料,但我确实找到的那些让我写成这样......

有人知道如何正确执行此操作吗?谢谢!

【问题讨论】:

    标签: python tensorflow tensorboard eager-execution


    【解决方案1】:

    如果您密切关注guide,您将有 3 个关键步骤来编写您的摘要: 1. 创建摘要

    phi_summary_op = tf.contrib.summary.scalar("phi", phi)
    

    1.2。 (可选)在一次操作中收集所有摘要

    merged = tf.summary.merge_all()
    

    2。在您的会话中执行摘要操作以及训练(或验证)步骤:

    summary, _ = sess.run([merged, train_step], feed_dict=feed_dict(True))
    

    3。将结果写入对应的日志文件:

    train_writer = tf.summary.FileWriter(FLAGS.summaries_dir + '/train',
                                          sess.graph)
    train_writer.add_summary(summary, i)
    

    希望对你有帮助

    【讨论】:

    • 对不起,我忘了说我正在使用渴望模式。我不能使用 sess 或 tf.summary.FileWriter。这就是我使用 tf.contrib.summary.create_file_writer 编写摘要的原因。
    • @python_thermal 你在调用 scalar(...) 后尝试过 summary_writer.flush() 吗?
    • 我现在试过了(不知道它存在,老实说)。我正在运行 tf.contrib.summary.scalar("loss", curr_loss) tf.contrib.summary.scalar("phi", self.phi) tf.contrib.summary.merge_all() tf.contrib.summary.flush( )。但是还不行。
    • 对于 (1) 确实如此,因为当我运行代码时,我在 TensorBoard 上获得了损失函数的新图。对于(2)我不知道如何检查。但我想我已经找到了问题所在。我的 phi 不像损失函数那样是张量。它只是一个常数。我会尝试更改它以查看它是否有效。
    • 我们都去过那里,不用担心)
    猜你喜欢
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2016-12-06
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    相关资源
    最近更新 更多