比较两个张量元素(tensorflow)

时间:2017-03-09 07:36:57

标签: python tensorflow neural-network

我有两个1D Tensorflow张量,我想逐元素地比较它们并创建一个新的张量记录它们不同的索引。对于上下文,它们每个都将索引存储到不同的2D张量中,所以如果我可以像numpy数组那样使用它们,我可能会做类似的事情:

for i in range(0, len(predicted_indices)):
    if predicted_indices[i] != correct_indices[i]:
        failed_preds.append(self.input_placeholder[i])

但是如果predict_indices和correct_indices都是张量,我该怎么办呢?

也可以采取其他方式来做到这一点。我试图存储我的模型在某个时代出错的具体例子。

2 个答案:

答案 0 :(得分:0)

在Tensorflow中,您可以在实际执行操作之前构建一个图形,在该图形中定义操作。 在这种情况下,您可以使用的操作是tf.equal函数,您将predict_indices和input_placeholder作为参数传递。这返回一个布尔张量。

在此处检查操作和其他比较操作:https://www.tensorflow.org/versions/master/api_docs/python/control_flow_ops/comparison_operators#equal

祝你好运!

答案 1 :(得分:0)

这有两个方面

sess1=tf.InteractiveSession()
a=np.random.randint(5,size=(1,10))
b=np.random.randint(5,size=(1,10))

a1=tf.convert_to_tensor(a,dtype=tf.float32)
b1=tf.convert_to_tensor(b,dtype=tf.float32)

布尔比较

print(a1.eval())
print(b1.eval())
result=tf.equal(a1,b1)
print(result.eval())

元素比较

print(a1.eval())
print(b1.eval())
result=tf.add(a1,-a2)
print(result.eval())

拥有此功能后,您可以根据需要使用此功能