使用相同大小的y计算张量流中的梯度(dy / dx)

时间:2018-04-26 06:52:22

标签: python tensorflow gradient

我想计算dy / dx的渐变并得到渐变的大小 y加上x的维度,表示x中的变量wrt变量。 例如,如果Y [100x1] = A [100x50] X [50x1],则返回Y [100x1x50x1]。 (对于x中的每个参数,给我Y的差异)

我已经尝试过tf.gradients运算符: https://www.tensorflow.org/api_docs/python/tf/gradients

然而,它返回总和(dy / dx)而不是dy / dx

1 个答案:

答案 0 :(得分:0)

你实际上并不想计算一个渐变,你想要计算雅可比矩阵。渐变是将nabla运算符应用于关于向量的标量函数,而雅可比运算符只是一个矩阵,其中每个元素J_ij是y_i相对于x_j的导数,这就是你想要的。

这仍未在Tensorflow中实现,但已详细讨论here。你可能会在那里找到适合你的工作方式。

基本的想法是一次只调用tf.gradients一个变量,然后手动构建雅可比行列式。