如何比较张量流中的张量?

时间:2016-12-13 09:31:16

标签: python tensorflow

我的最终目标是判断placeholder值。

现在我可以使用常规的python比较表达式来判断placeholder。然后,你知道,它会返回一个张量。

temp_tensor = a_placeholder > 0

然后,例如,在nn_ops.py

temp1 = constant_op.constant(True)
temp2 = constant_op.constant(False)

如何比较temp1temp2?或temp1temp2是否相等。

3 个答案:

答案 0 :(得分:3)

考虑到tf.equal(temp1, temp2)返回张量(例如[[True], [False]]) 如果你想找到答案“这个张量等于另一个张量”,你就不需要比较元素。 您可能想要的是

if sess.run(tf.reduce_all(tf.equal(temp1, temp2))):
    print('temp1 is equal temp2') 
else:
    print('temp1 is not equal temp2') 

答案 1 :(得分:1)

您应该使用tf.equal功能。遵循官方文档,tf.equal()接受两个张量并明确操作元素。这样的事情应该有用,

result = tf.equal(temp1, temp2)

注意,resulttemp1temp2具有相同的维度并填充了布尔值。

答案 2 :(得分:0)

尝试

  

tf.cond(tf.equal(temp1,temp2),true_fn,false_fn)

其中true_fn和false_fn是函数。 例如,您可以编写类似

的内容
tf.cond(tf.equal(temp1, temp2)
       , lambda: print(temp1, ' and ', temp2 , 'are equal.')
       , lambda: print(temp1, ' and ', temp2, 'are NOT equal.'))