Tensorflow error: Using a `tf.Tensor` as a Python `bool` is not allowed
Tensorflow error: Using a `tf.Tensor` as a Python `bool` is not allowed
我正在努力在 Python 中实现 tensorflow 中的激活函数。
代码如下:
def myfunc(x):
if (x > 0):
return 1
return 0
但我总是收到错误消息:
Using a tf.Tensor
as a Python bool
is not allowed. Use if t is not None:
使用tf.cond
:
tf.cond(tf.greater(x, 0), lambda: 1, lambda: 0)
另一种解决方案,另外支持多维张量:
tf.sign(tf.maximum(x, 0))
但是请注意,这个激活的梯度在任何地方都是零,所以神经网络不会用它学习任何东西。
在 TF2 中,您可以用 @tf.function
:
修饰函数 myfunc()
@tf.function
def myfunc(x):
if (x > 0):
return 1
return 0
我正在努力在 Python 中实现 tensorflow 中的激活函数。
代码如下:
def myfunc(x):
if (x > 0):
return 1
return 0
但我总是收到错误消息:
Using a
tf.Tensor
as a Pythonbool
is not allowed. Useif t is not None:
使用tf.cond
:
tf.cond(tf.greater(x, 0), lambda: 1, lambda: 0)
另一种解决方案,另外支持多维张量:
tf.sign(tf.maximum(x, 0))
但是请注意,这个激活的梯度在任何地方都是零,所以神经网络不会用它学习任何东西。
在 TF2 中,您可以用 @tf.function
:
myfunc()
@tf.function
def myfunc(x):
if (x > 0):
return 1
return 0