返回relu的导数的基本函数可总结如下:
f'(x) = x > 0
因此,用numpy可以是:
def relu_derivative(z):
return np.greater(z, 0).astype(int)
0
返回relu的导数的基本函数可总结如下:
f'(x) = x > 0
因此,用numpy可以是:
def relu_derivative(z):
return np.greater(z, 0).astype(int)
0
这是矢量化的练习。
此代码
if x > 0:
y = 1
elif xi <= 0:
y = 0
可以改写成
y = (x > 0) * 1
这对于numpy数组将起作用,因为涉及它们的布尔表达式将转换为这些数组中这些元素的这些表达式的值的数组。
0
我想这就是您要寻找的东西:
>>> 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.]])
0
def dRelu(z):
return np.where(z <= 0, 0, 1)
在我的情况下,z是一个ndarray。
0
我正在尝试实现一个函数,该函数计算矩阵中每个元素的Relu导数,然后将结果返回到矩阵中。我正在使用Python和Numpy。
根据其他交叉验证帖子,x的Relu导数在x> 0时为1,在x <0时为0,未定义,在x == 0时为0。
目前,我有以下代码:
不幸的是,xi是一个数组,因为x是一个矩阵。 reluDerivativeSingleElement函数不适用于数组。所以我想知道是否有一种方法可以使用numpy将矩阵中的值映射到另一个矩阵,例如numpy中的exp函数?
非常感谢。