我正在学习通过张量板可视化张量,但是,我不知道如何在直方图选项卡中解释图表。我使用下面的代码来可视化:
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轴的值。根据{{3}}问题,
这是标准化的密度。我不会将其描述为概率密度, 虽然我认为称之为一个是合理的。
任何人都可以解释更多(即如何计算密度)?
答案 0 :(得分:1)
这里的情节大致显示了应该显示的内容。峰值为1, 2, 3, 4
。最大的峰值是4,最小的是3。你会看到这样一个奇怪的结果,因为你选择看到输出的分布很难看作分布(就像看起来不那么令人印象深刻在三维程序中的圆圈)。
绘制实际分布,将更容易理解。这是一个例子:
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()
现在,从0到9的10个堆积直方图来自您的循环。它们都是相同的,因为值a
没有任何内容。在实际工作中,您将看到每次训练后你的张量的直方图。
关于你的图像,我认为它们使输出变得平滑,这就是你看到这样结果的原因。