我想计算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
答案 0 :(得分:0)
你实际上并不想计算一个渐变,你想要计算雅可比矩阵。渐变是将nabla运算符应用于关于向量的标量函数,而雅可比运算符只是一个矩阵,其中每个元素J_ij是y_i相对于x_j的导数,这就是你想要的。
这仍未在Tensorflow中实现,但已详细讨论here。你可能会在那里找到适合你的工作方式。
基本的想法是一次只调用tf.gradients
一个变量,然后手动构建雅可比行列式。