我试图实现一个函数,它计算矩阵中每个元素的relu导数,然后将结果返回到矩阵中。我用的是python和numpy。
基于其他交叉验证岗位,x的relu导数为
x>0时为1,x目前为止,我有以下代码:

def reluDerivative(self, x):
    return np.array([self.reluDerivativeSingleElement(xi) for xi in x])

def reluDerivativeSingleElement(self, xi):
    if xi > 0:
        return 1
    elif xi <= 0:
        return 0

不幸的是,XI是一个数组,因为X是一个矩阵。ReluderivativeSingleElement函数不能在数组上工作。所以我想知道是否有一种方法可以使用numpy将矩阵中的值映射到另一个矩阵,就像numpy中的exp函数一样?
提前多谢。

最佳答案

我想这就是你要找的:

>>> def reluDerivative(x):
...     x[x<=0] = 0
...     x[x>0] = 1
...     return x

>>> z = np.random.uniform(-1, 1, (3,3))
>>> z
array([[ 0.41287266, -0.73082379,  0.78215209],
       [ 0.76983443,  0.46052273,  0.4283139 ],
       [-0.18905708,  0.57197116,  0.53226954]])
>>> reluDerivative(z)
array([[ 1.,  0.,  1.],
       [ 1.,  1.,  1.],
       [ 0.,  1.,  1.]])

关于machine-learning - 在python numpy中实现Relu派生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46411180/

10-11 18:20