2017-07-06 12 views
0

numpy配列の各要素にrelu関数を渡そうとしていますが、sigmoid関数で試してみるとうまくいきますが、relu関数を使って返します。numpy配列のすべての要素に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) 

シグモイド関数:

def sigmoid(x): 
    return 1/(1 + np.exp(-x)) 

私はRをやってみましたelu(myArray)を返しますが、map(relu、myArray)と同じvalueErrorを返します

これはSigmoid関数でうまく動作しますが、どうしてそれを修正できますか?ありがとう

答えて

1

numpy.maximumが必要です。通常の組み込みのmaxは、配列入力を介してブロードキャストしません。

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) 

Works for me。

+0

私の質問の最後の2番目の文でチェックすると、これは同じエラーを返すと述べています – Tissuebox

+0

私はちょうど私の答えを編集しました。あなたがもっと助けが必要な場合は、多分あなたのコードをもう少し私に提供することはできますか? :) – Thundzz

+0

あなたのアレイがどのように見えるかを私に見せることができます。 – Thundzz

関連する問題