【问题标题】:Tensorboard v1.0 - Histogram tab interpretationTensorboard v1.0 - 直方图标签解读
【发布时间】:2017-09-26 01:20:59
【问题描述】:

我正在学习通过张量板可视化张量,但是,我不知道如何解释直方图选项卡中的图表。我用下面的代码来可视化:

sess = tf.Session()
tf.summary.histogram('test', tf.constant([1, 1, 2, 2, 3, 4, 4, 4, 4]))
summary = tf.summary.merge_all()

train_writer = tf.summary.FileWriter('../tmp/train', sess.graph)
for i in range(10):
    sum = sess.run(summary)
    train_writer.add_summary(sum, i)

我从 tensorboard 得到这张图表:

直方图模式:偏移

直方图模式:叠加

我知道x轴是值,y轴是时间步长,我不知道z轴的值。根据this问题,

这是一个归一化的密度。我不会将其描述为概率密度, 虽然我认为称它为一个是合理的。

谁能解释更多(即密度是如何计算的)?

【问题讨论】:

    标签: tensorflow histogram tensorboard


    【解决方案1】:

    这里的图大致显示了它应该显示的内容。在值 1, 2, 3, 4 处出现峰值。最大的尖峰在 4 处,最小的在 3 处。您会看到如此奇怪的结果,因为您选择查看输出的分布,这很难可视化为分布(与看起来不会令人印象深刻的方式相同)在 3-d 程序中的圆圈处)。

    绘制实际分布图,这样会更容易理解。这是一个例子:

    import tensorflow as tf
    import numpy as np
    
    v = np.random.normal(loc=5,  scale=3.0, size=100000)
    a = tf.constant(v)
    s = tf.summary.histogram('normal', a)
    
    merged = tf.summary.merge_all()
    with tf.Session() as sess:
        writer = tf.summary.FileWriter('logs', sess.graph)
        for i in xrange(10):
            summary = sess.run(merged)
            writer.add_summary(summary, i)
    
        writer.close()
    

    在这里您可以看到平均值为 5 且标准为 3 的正态分布。

    现在从 0 到 9 的 10 个堆叠直方图来自您的循环。它们都是相同的,因为值 a 没有任何作用。在实际工作中,您将看到每次训练后演变的张量直方图。

    关于您的图像,我认为它们会平滑输出,这就是您看到此类结果的原因。

    【讨论】:

    • 谢谢。我真正好奇的是 tensorboard 如何为尺寸很小的张量生成“奇怪”的图表。我认为你是对的,平滑输出可能是原因。也许我可以花点时间深入研究代码。
    • @Yon 会很好。当你发现它时,请评论或写下你自己的答案。
    猜你喜欢
    • 2017-11-27
    • 2017-07-07
    • 2016-06-04
    • 2017-07-24
    • 2019-10-16
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多