L2矩阵逐行归一化梯度

时间:2015-11-27 19:59:37

标签: python numpy neural-network deep-learning backpropagation

我试图为卷积神经网络实现L2范数层,并且我坚持向后传递:

def forward(self, inputs):
    x, = inputs
    self._norm = np.expand_dims(np.linalg.norm(x, ord=2, axis=1), axis=1)
    z = np.divide(x, self._norm)
    return z,

def backward(self, inputs, grad_outputs):
    x, = inputs
    gz, = grad_outputs
    gx = None # how to compute gradient here?
    return gx,

如何计算gx? 我的第一个猜测是

gx = - gz * x / self._norm**2

但这个似乎是错误的。

1 个答案:

答案 0 :(得分:0)

正确答案是

gx = np.divide(gz, self._norm)