Tis*_*box 5 python arrays numpy
我想将一个multidimensionnal 数组传递给reluprime
函数
def reluprime(x):
if x > 0:
return 1
else:
return 0
Run Code Online (Sandbox Code Playgroud)
......这x
是整个阵列.它回来了
ValueError:具有多个元素的数组的真值是不明确的.使用a.any()或a.all()
我有正常relu
功能的这个问题,而不是使用max()
我使用的python函数np.max()
,它工作.但是对于relu prime,它无论如何都无法正常工作.我试过了:
def reluprime(x):
if np.greater(x, 0):
return 1
else:
return 0
Run Code Online (Sandbox Code Playgroud)
......它仍然返回相同的错误.我怎样才能解决这个问题?谢谢.
因为如果向量中的条目大于0,则relu prime返回1,否则返回0,您可以这样做:
def reluprime(x):
return (x>0).astype(x.dtype)
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,x
假设输入数组是一个numpy数组.例如,reluprime(np.array([-1,1,2]))
退货array([0, 1, 1])
.
if语句没有意义,因为对于整个数组,它只被评估一次.如果你想要数组的每个元素的if语句的等价物,你应该做类似的事情:
def reluprime(x):
return np.where(x > 0, 1.0, 0.0)
Run Code Online (Sandbox Code Playgroud)