【问题标题】:In Tensorflow, how do I generate a scalar summary?在 TensorFlow 中,如何生成标量摘要?
【发布时间】:2015-11-26 17:11:08
【问题描述】:

有没有人有一个使用带有 scalar_summary 的 SummaryWriter 的最小示例,以便在训练运行期间查看(例如)交叉熵结果?

例子given in the documentation

merged_summary_op = tf.merge_all_summaries()
summary_writer = tf.train.SummaryWriter('/tmp/mnist_logs', sess.graph_def)
total_step = 0
while training:
    total_step += 1
    session.run(training_op)
    if total_step % 100 == 0:
        summary_str = session.run(merged_summary_op)
        summary_writer.add_summary(summary_str, total_step)

返回错误:TypeError: Fetch argument None of None has invalid type ,必须是字符串或张量。 (不能将 NoneType 转换为张量或操作。) 当我运行它时。

如果我添加一个:

tf.scalar_summary('cross entropy', cross_entropy)

我的交叉熵计算后的操作,然后我得到了错误:

InvalidArgumentError:您必须使用 dtype float 为占位符张量“Placeholder_2”提供一个值

这表明我需要在

中添加一个 feed_dict
summary_str = session.run(merged_summary_op)

打电话,但我不清楚 feed_dict 应该包含什么......

【问题讨论】:

标签: tensorflow


【解决方案1】:

feed_dict 应包含与运行training_op 相同的值。它基本上指定了您要为其计算摘要的网络的输入值。

【讨论】:

    【解决方案2】:

    错误可能来自:

    session.run(training_op)
    

    您是否将示例代码粘贴到需要 feed_dict 来输入训练示例的 mnist 代码版本中?检查它给你的回溯(如果不能解决问题,请将其包含在上面)。

    【讨论】:

    • 我查看了 mnist 示例,看到了您提到的用法,并且正如您所观察到的,它确实使用 feed_dict(用于图像),这里的问题是 feed_dict 应该用于什么标量包含?
    • 什么是training_op?不是来自mnist代码吗?
    • 'training_op' 是您为训练定义的任何操作,例如调用 'tf.train.AdamOptimizer' 或 'tf.train.GradientDescentOptimizer'。然而,这不是错误的来源,它来自: session.run(merged_summary_op) 它需要一个带有一些未知值的 feed_dict。
    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 2020-01-13
    • 2017-11-09
    • 1970-01-01
    • 2019-05-05
    • 2020-08-22
    • 1970-01-01
    • 2020-04-07
    相关资源
    最近更新 更多