为了账号安全,请及时绑定邮箱和手机立即绑定

为什么张量没有连接到 TensorBoard 中的梯度?

为什么张量没有连接到 TensorBoard 中的梯度?

千万里不及你 2022-05-19 14:35:01
为了练习,我想在 tensorflow 中实现一个模型,它可以返回输入的平方。我的代码工作正常,但是当我查看 TensorBoard 中的计算图时,LOSS 操作没有连接到 Gradients 子图,也没有连接到 Adam。为什么是这样?据我了解,计算梯度,张量流必须推导损失。这是我的代码:import numpy as npimport tensorflow as tfnp_inp = np.array([3, 6, 4, 2, 9, 11, 0.48, 22, -2.3, -0.48])np_outp = np.power(np_inp, 2)inputs = tf.Variable(np_inp, name='input', trainable=False)outputs = tf.Variable(np_outp, name='output', trainable=False)multiplier = tf.Variable(0.1,                                                       dtype=tf.float64, trainable=True, name='multiplier')mul = inputs * multiplierpredict = tf.square(mul, name='prediction')loss = tf.math.reduce_sum(tf.math.square(predict-outputs), name='LOSS')optimizer = tf.train.AdamOptimizer(0.1)to_minimize = optimizer.minimize(loss)sess = tf.Session()sess.run(tf.global_variables_initializer())logs_path = "./logs/unt"  # path to the folder that we want to save the logs for Tensorboardtrain_writer = tf.summary.FileWriter(logs_path, sess.graph)for i in range(100):  sess.run(to_minimize)print(sess.run({'mult':multiplier}))张量板: https ://gofile.io/?c=jxbWiG
查看完整描述

1 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

这可能与直觉相反,但损失的实际值并不用于训练本身(尽管绘制它以查看其进度可能很有用)。优化器一般使用的是梯度,即每个变量的每次变化会如何影响损失值。为了计算这一点,创建了一个形状相同LOSS但填充了一个的张量,并通过反向传播计算每个操作的梯度。如果您打开gradients图表中的框,您将看到一个LOSS_grad表示此框的框。

//img1.sycdn.imooc.com//6285f1f700015cbc07450492.jpg

它是由几个节点组成的张量,因为某事物相对于自身的梯度总是一个。从那里,计算其余的梯度。



查看完整回答
反对 回复 2022-05-19
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号