Python 如何在两个张量之间提取非等价项的索引?

Python 如何在两个张量之间提取非等价项的索引?,python,pytorch,tensor,Python,Pytorch,Tensor,我有一个张量,有N个对象类的N个预测,还有一个张量,有实N个目标对象类。我想找出我的分类器预测错误的张量指数 考虑定义为以下两个张量: import torch predictions = torch.tensor([ [0], [1], [1], [0], [0], [1] ]) target = torch.tensor([ [0], [0], [1], [1], [0], [1] ]) 我想找到一些函数,在这里我可以传递这两个向量,并返回一个类似于index\u diff=[1

我有一个张量,有N个对象类的N个预测,还有一个张量,有实N个目标对象类。我想找出我的分类器预测错误的张量指数

考虑定义为以下两个张量:

import torch
predictions = torch.tensor([ [0], [1], [1], [0], [0], [1] ])
target      = torch.tensor([ [0], [0], [1], [1], [0], [1] ])
我想找到一些函数,在这里我可以传递这两个向量,并返回一个类似于
index\u diff=[1,3]
的列表。这个功能存在吗?我目前的想法是将这两个向量都投射到numpy数组中,然后循环N次并比较每个索引中的每个条目,但这对我来说似乎有点迂回。有其他选择吗?

类似于

index_diff = (predictions.flatten() != target.flatten()).nonzero().flatten()

应该能行。

成功了,谢谢!当张量的格式略有不同时,它甚至可以工作,例如:
predictions=torch.tensor([0],[0]])
target=torch.tensor([0,0])
。是的,
.flatte()
将张量重塑为1d张量。您可以通过删除它们来查看其行为。