我有两个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都是张量,我该怎么办呢?
也可以采取其他方式来做到这一点。我试图存储我的模型在某个时代出错的具体例子。
答案 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())
拥有此功能后,您可以根据需要使用此功能