参考:https://blog.youkuaiyun.com/C_chuxin/article/details/85269471
Keras中计算神经网络的梯度函数
K.gradients(y,x)
【功能】用于求y关于x 的导数(梯度),
【输入】(y和x可以是张量tensor也可以是张量列表,形如 [tensor1, tensor2, …, tensorn]),
【返回】返回的是一个张量列表,列表长度是张量列表x的长度,列表元素是与x具有一样shape的张量。
具体而言:
K.gradients()实现y对x求导
求导返回值是一个list,list的长度等于len(x)
假设返回值是[grad1, grad2, grad3],y=[y1, y2],x=[x1, x2, x3]。则,真实的计算过程为:
其中y1/x1表示求y1关于x1的偏导数。
PS :K.gradients()应该是通过tensorflow的tf.gradients()实现的