參考:https://blog.csdn.net/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()實現的