仔细研究了一下tensorboard的直方图表示
参考文献, 官方文档:https://www.tensorflow.org/get_started/tensorboard_histograms
import tensorflow as tf
k = tf.placeholder(tf.float32)
# Make a normal distribution, with a shifting mean
mean_moving_normal = tf.random_normal(shape=[1000], mean=(5*k), stddev=1)
# Record that distribution into a histogram summary
tf.summary.histogram("normal/moving_mean", mean_moving_normal)
# Setup a session and summary writer
sess = tf.Session()
writer = tf.summary.FileWriter("/tmp/histogram_example")
summaries = tf.summary.merge_all()
# Setup a loop and write the summaries to disk
N = 400
for step in range(N):
k_val = step/float(N)
summ = sess.run(summaries, feed_dict={k: k_val})
writer.add_summary(summ, global_step=step)
在google官方文档中,变量mean_moving_normal是一个以5k为中心,dev=1的正太分布的抽样,包含1000个样本,
tf.summary.histogram函数相当于对1000个样本(也就是shape=(1000,1)的向量)做了一个分布直方图,这个很好理解.

这篇博客探讨了TensorBoard中histogram的表示方法,解释了TensorFlow如何使用指数分布创建非均匀的bins,以及这可能导致的可视化问题。文章提到,尽管这种分布有利于处理大型稀疏数据集,但它可能导致直方图的形状失真。为了解决这个问题,TensorBoard通过重采样数据到均匀bins来改善直方图的可读性。案例分析了一维向量在直方图中的表现形式:0附近的bin较窄且高,远离0的bin较宽且矮。
最低0.47元/天 解锁文章
4726

被折叠的 条评论
为什么被折叠?



