我想要做的是检查张量 t1 = [[[1. , 2. , 3.4]]] 是否存在于另一个张量 t2 = [[[1. , 5. , 3.4], [1. , 2. , 3.4]]] 中。我尝试使用 tf.equal(),但它返回了以下结果。
我需要的是一个布尔值(True或False),用于判断t1是否存在于t2中。 类似于:
将其缩减为类似张量的形式
[[[True False True]]]
但我仍然不知道如何从中获得正确答案(应为单个布尔值True)。 此外,如果我将tf.math.reduce_any()应用于
[[[True False True] [True True True]]]
它可以被缩减为
[[[True True True]]]
(再次给我一个张量而不是单个布尔值),然后如果我假设答案将为True,因为结果张量的所有元素都为True,则这是不正确的,因为tf.math.reduce_all()对于tf.equal()的输出也会给出类似的结果,即
[[[True False True] [False True False]]]
也就是说,例如 t1 = [[[1., 2., 3.4]]] 和 t2 = [[[1., 5., 3.4], [6., 2., 7.8]]]。
希望这能帮到你。
tf.equal(t2, t1) # Output : [[[True False True] [True True True]]]
我需要的是一个布尔值(True或False),用于判断t1是否存在于t2中。 类似于:
if your_method(t2, t1):
print("Yes, t1 is contained in t2.")
有没有一种完全符合Python规范的方法来做到这一点?
此外,我已经检查过了,tf.listdiff()不再受支持。
编辑:
好的,我找到了一个tf.math.reduce_all()方法,可以应用于上面的输出张量
[[[True False True] [True True True]]]
将其缩减为类似张量的形式
[[[True False True]]]
但我仍然不知道如何从中获得正确答案(应为单个布尔值True)。 此外,如果我将tf.math.reduce_any()应用于
[[[True False True] [True True True]]]
它可以被缩减为
[[[True True True]]]
(再次给我一个张量而不是单个布尔值),然后如果我假设答案将为True,因为结果张量的所有元素都为True,则这是不正确的,因为tf.math.reduce_all()对于tf.equal()的输出也会给出类似的结果,即
[[[True False True] [False True False]]]
也就是说,例如 t1 = [[[1., 2., 3.4]]] 和 t2 = [[[1., 5., 3.4], [6., 2., 7.8]]]。
希望这能帮到你。
in
运算符有用吗? - Mad Physicistnp.any(np.all(np.equal(t2, t1), axis=1))
。我期望tf有一组类似的操作。 - Mad Physicistin
操作符返回了 false。 - Anubhav Pandey