如标题中所述,是否有一个TensorFlow等效的numpy.all()函数来检查bool张量中的所有值是否为True
?实施此类检查的最佳方法是什么?
答案 0 :(得分:5)
使用tf.reduce_all,如下所示:
import tensorflow as tf
a=tf.constant([True,False,True,True],dtype=tf.bool)
res=tf.reduce_all(a)
sess=tf.InteractiveSession()
res.eval()
返回False
。
另一方面,这会返回True
:
import tensorflow as tf
a=tf.constant([True,True,True,True],dtype=tf.bool)
res=tf.reduce_all(a)
sess=tf.InteractiveSession()
res.eval()
答案 1 :(得分:0)
解决这个问题的一种方法是:
def all(bool_tensor):
bool_tensor = tf.cast(bool_tensor, tf.float32)
all_true = tf.equal(tf.reduce_mean(bool_tensor), 1.0)
return all_true
但是,它不是TensorFlow专用功能。只是一种解决方法。
答案 2 :(得分:0)
您可以在 tf 2.4 中使用 tf.experimental.numpy.all
x = tf.constant([False, False])
tf.experimental.numpy.all(x)