gpt4 book ai didi

python - TensorBoard:如何绘制梯度直方图?

转载 作者:太空狗 更新时间:2023-10-29 20:10:42 25 4
gpt4 key购买 nike

TensorBoard 具有在 session 期间绘制张量直方图的功能。我想要训练期间梯度的直方图。

tf.gradients(yvars,xvars) 返回一个渐变列表。

但是,tf.histogram_summary('name',Tensor) 只接受张量,不接受张量列表。

目前,我做了一个变通办法。我将所有张量展平为一个列向量并将它们连接起来:

对于 xrange 中的 l(列表长度):
col_vec = tf.reshape(grads[l],[-1,1])
g = tf.concat(0,[g,col_vec])
grad_hist = tf.histogram_summary("姓名", g)

绘制梯度直方图的更好方法是什么?

这似乎是一件很常见的事情,所以我希望 TensorFlow 能有一个专门的功能来做这件事。

最佳答案

另一个解决方案(基于 this quora answer )是直接从您正在使用的优化器访问梯度。

optimizer = tf.train.AdamOptimizer(..)
grads = optimizer.compute_gradients(loss)
grad_summ_op = tf.summary.merge([tf.summary.histogram("%s-grad" % g[1].name, g[0]) for g in grads])
grad_vals = sess.run(fetches=grad_summ_op, feed_dict = feed_dict)
writer['train'].add_summary(grad_vals)

关于python - TensorBoard:如何绘制梯度直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36392952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com