将relu函数传递给numpy数组的所有元素

时间:2017-07-06 19:50:13

标签: python arrays numpy

我正在尝试将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函数一起工作正常,它为什么这样做,我该如何解决?感谢

2 个答案:

答案 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)

适合我。