web-dev-qa-db-ja.com

Tensorflowエラー: `tf.Tensor`をPython` bool`として使用することは許可されていません

PythonのTensorFlowでアクティベーション関数を実装するのに苦労しています。

コードは次のとおりです。

def myfunc(x):
    if (x > 0):
        return 1
    return 0

しかし、私は常にエラーが発生しています:

tf.TensorをPython boolとして使用することは許可されていません。if t is not None:を使用してください

5
Lilo

使用する - tf.cond

tf.cond(tf.greater(x, 0), lambda: 1, lambda: 0)

さらに多次元テンソルをサポートする別のソリューション:

tf.sign(tf.maximum(x, 0))

ただし、このアクティベーションの勾配はどこでもゼロであるため、ニューラルネットワークはそれを使用して何も学習しないことに注意してください。

11
Maxim

次のコードを使おうとしたときに、似たような問題が発生しました

if tf.math.equal(a,b):
    break

変数aとbはテンソル変数です

1.14バージョンのtensorflowを使用していますが、次のエラーが発生していました

Using a tf.Tensor as a Python bool is not allowed. Use if t is not None:

解決策

if tf.math.equal(a,b) is not None:
   break

これは私のために働いた。うまくいけば、これはここの誰かを助けます。

0
Karthik N G