我正在尝试将relu函数传递给numpy数组的每个单独元素,当我使用sigmoid函数尝试它时,它可以工作但是使用relu函数,它会返回:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
relu功能:
def relu(x):
return max(0, x)
sigmoid功能:
def sigmoid(x):
return 1 / (1 + np.exp(-x))
我尝试了relu(myArray),但它返回valueError,与map(relu,myArray)相同
它与sigmoid函数一起工作正常,它为什么这样做,我该如何解决?感谢
答案 0 :(得分:2)
您需要numpy.maximum
。常规内置max
不会通过数组输入进行广播。
答案 1 :(得分:0)
只需使用
result = map(relu, array)
将您的函数应用于数组的每个元素。
import numpy as np
def relu(x):
return max(0, x)
array = np.arange(-10,10)
result = map(relu, array)
print(result)
适合我。