作者xxkevin (x_x)
看板DataScience
标题[问题] tensorflow gradients 对多维output
时间Tue Jul 16 13:20:16 2019
作业系统:win10
使用工具:tensorflow
问题内容:
一个input为 M 维, output为 N 维的DNN model
希望得到个别维度对input的梯度
也就是 δn1/δm1 , δn1/δm2 , ... ,δn2/δm1, δn2/δm2 , ...
所以我就用tf.gradients(output,input) 试图要得到上面的东西
预期要得到一个 M*N 维的矩阵
结果他回传是一个 M*1 维的矩阵
检查了一下发现他"似乎"是回传
[δsum(output)/δm1 , δsum(output)/δm2, ...] 这样的一个向量给我
我也不是很确定他回传的到底是甚麽
我google了一下发现也有类似的问题
但没有解答
https://stackoverflow.com/questions/50454095/tf-gradients-dimensions-of-output
希望版上高手能给予解答
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.64.55.167 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1563254421.A.E11.html
1F:推 yoyololicon: 你想拿jacobian matrix是ㄇ 07/16 22:29
3F:→ yoyololicon: from tensorflow.python.ops.parallel_for.gradients 07/16 22:36
4F:→ yoyololicon: import jacobian 07/16 22:36
5F:推 sxy67230: 用GradientTape,1.14後很好用的,tape.gradient就是取 07/17 00:00
6F:→ sxy67230: 得微分变量,tape.jacobian就是取得各自的微分,即jacob 07/17 00:00
7F:→ sxy67230: ian。 07/17 00:00
8F:推 sxy67230: 尤其是以後tf 2.0,官方guideline 推荐指定用gradientTa 07/17 00:02
9F:→ sxy67230: pe 07/17 00:02
10F:→ xxkevin: 感谢两位的解答,问题解决了 07/18 10:26