在TensorFlow程序员指南中,Flow Control/FizzBuzz示例显示:
num = tf.constant(num)
if num % 3 == 0 and num % 5 == 0:
然而,这对我不起作用。
fiver % 5 == 0
False
我成功运作的唯一方法是使用:
(num % 5).numpy() == 0
python比较是否应该与EagerTensor
类型一起使用?当然,tf.equal()
有效,但该示例显示了== 0
等直接比较。
答案 0 :(得分:3)
这听起来像文档中的错误。如果你看the source of the equality operator of the Tensor
object,
def __eq__(self, other):
# Necessary to support Python's collection membership operators
return id(self) == id(other)
因此,my_boolean_tensor==True
(或False
)将始终返回False
,因为张量对象不是True
或False
对象。
如果我正确理解该运算符中的注释,则此行为不太可能发生变化。