Python 张量比较没有按预期工作

Python 张量比较没有按预期工作,python,tensorflow,Python,Tensorflow,我需要写一段代码来理解张量的条目是否有一个特定的值“2” 这是我用于测试的代码: sess = tf.Session() some_values = tf.constant([1,2,3,4], dtype=tf.int32) values_equal_two = (some_values == 2 ) print(sess.run(values_equal_two)) 这就是我得到的错误: TypeError: Fetch argument False has invalid type &l

我需要写一段代码来理解张量的条目是否有一个特定的值“2”

这是我用于测试的代码:

sess = tf.Session()
some_values = tf.constant([1,2,3,4], dtype=tf.int32)
values_equal_two = (some_values == 2 )
print(sess.run(values_equal_two))
这就是我得到的错误:

TypeError: Fetch argument False has invalid type <class 'bool'>, must be a 
string or Tensor. (Can not convert a bool into a Tensor or Operation.)
它工作正常,并返回:

[False  True  True  True]

我想知道问题可能是什么,或者是否可以用另一种方式完成同样的任务。提前感谢您的建议。

检查目标列表中是否存在单个或多个值的另一种方法。 使用


=
操作符按您预期的方式工作,而
=
却没有,原因是
\uuuge\uuuuu\uuuu\uuu\uuu\uu\uu\uu\uu>python方法在TensorFlow python API中被重载,而
\uuuuuu eq\uuuuu\uu\uu\uu\uu\uu\uu
没有(请检查此)

如果要检查平等性,可以使用支持广播的:

sess = tf.Session()
some_values = tf.constant([1, 2, 3, 4], dtype=tf.int32)
values_equal_two = tf.equal(some_values, 2)
print(sess.run(values_equal_two))
打印
[False-True-False]

 # get the values which are not 2
 diffs,_ = tf.setdiff1d(some_values, tf.convert_to_tensor([2]))
 > print(sess.run(diffs))  # results: array([1, 3, 4], dtype=int32)
 # check if 2 exist in the list some_values
 final_diff, _= tf.setdiff1d(some_values, diffs)
 > print(sess.run(final_diff))  # results: array([2], dtype=int32)
sess = tf.Session()
some_values = tf.constant([1, 2, 3, 4], dtype=tf.int32)
values_equal_two = tf.equal(some_values, 2)
print(sess.run(values_equal_two))