Python 张量比较没有按预期工作
我需要写一段代码来理解张量的条目是否有一个特定的值“2” 这是我用于测试的代码: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
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))