如何解释TensorBoard中TensorFlow给出的直方图?


23

我最近正在跑步并学习张量流,并得到了一些我不知道如何解释的直方图。通常我将条形的高度视为频率(或相对频率/计数)。但是,没有像通常的直方图那样没有条形的事实以及事物被阴影化的事实使我感到困惑。似乎一次也有很多行/高度?

是否有人知道如何解释以下图表(也许提供了很好的建议,它们通常可以帮助阅读张量流中的直方图):

在此处输入图片说明

也许还有其他值得讨论的事情,如果原始变量是矢量,矩阵或张量,那么张量流实际上显示了什么,就像每个坐标的直方图一样?另外,也许引用如何获取这些信息以使人们自给自足会很好,因为我现在在文档上很难找到有用的东西。也许一些教程示例等?也许一些关于操纵它们的建议也会很好。


作为参考,这里摘录了给出此代码的代码:

(X_train, Y_train, X_cv, Y_cv, X_test, Y_test) = data_lib.get_data_from_file(file_name='./f_1d_cos_no_noise_data.npz')
(N_train,D) = X_train.shape
D1 = 24
(N_test,D_out) = Y_test.shape
W1 = tf.Variable( tf.truncated_normal([D,D1], mean=0.0, stddev=std), name='W1') # (D x D1)
S1 = tf.Variable( tf.constant(100.0, shape=[]), name='S1') # (1 x 1)
C1 = tf.Variable( tf.truncated_normal([D1,1], mean=0.0, stddev=0.1), name='C1' ) # (D1 x 1)
W1_hist = tf.histogram_summary("W1", W1)
S1_scalar_summary = tf.scalar_summary("S1", S1)
C1_hist = tf.histogram_summary("C1", C1)

2
无论这些图是什么,它们绝对不是直方图!根据定义,直方图通过面积来描述概率
ub

1
关键是,通过将它们称为“直方图”,您会误导自己,冒着误导读者的风险,并且失去了研究正在发生的事情的机会,因为您将在搜索中使用错误的关键字。你应该做的第一件事就是咨询您的文档,以找出调用这些地块。
ub

1
@whuber我没有称它们为直方图,他们称自己为直方图!这是我用来收集该信息的命令之一W1_hist = tf.histogram_summary("W1", W1)。它说直方图,我还想称呼它吗?我不知道为什么在其他情况下会称其为直方图。
Pinocchio

1
我想软件开发人员可以根据自己的喜好命名其功能。但是,无论函数的名称如何,它们都不是任何形式的直方图。我们可以希望文档使用可识别的常规名称,或者至少描述这些图的构造方式。
ub

2
@Pinocchio,谷歌搜索了两分钟,把我带到了github.com/tensorflow/tensorflow/blob/master/tensorflow/…,您可以向下滚动以阅读“直方图”。您已经看过此文档了吗?
变形虫说莫妮卡(Reonica Monica)

Answers:


21

当前,名称“直方图”用词不当。您可以在README中找到证明。直方图界面的含义可能会在某天如他们所说的那样发生变化。但是,这就是当前的含义。

您问题中的图形混合了TensorFlow的不同运行。相反,请看以下仅显示一次运行的图:

在此处输入图片说明

首先,我想说的是,曲线本身代表百分位数。我将从这里借照片:

在此处输入图片说明

这表示标记为93%的曲线是第93个百分位,这意味着93%的观察值在1.00k时低于〜0.130的值。因此,该图给出了3个信息,在神经网络训练计算的每个时间步长处,根据某个思维曲线,观察的百分比都达到一定值(至少在这种情况下,其含义是什么)。这使您可以感觉到网络价值的分布。

还有最小值和最大值,以便在训练过程中了解值的范围。

因此,y轴告诉您感兴趣的值,曲线告诉您步骤中的百分位数和x轴。因此,如果您有:

XF一世X=ÿ

一世一世

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.