Как извлечь индексы неэквивалентных записей между двумя тензорами? - PullRequest
1 голос
/ 06 ноября 2019

У меня есть тензор с N предсказаниями для классов N объектов, и у меня есть другой тензор с реальными N классами целевых объектов. Я хотел бы вытащить тензорные индексы, где мои предсказания классификатора неверны.

Рассмотрим два следующих тензора, определенных как:

import torch
predictions = torch.tensor([ [0], [1], [1], [0], [0], [1] ])
target      = torch.tensor([ [0], [0], [1], [1], [0], [1] ])

Я хочу найти некоторую функцию, в которой я могу передать эти два вектора и вернуть список типа index_diff = [1, 3]. Эта функция существует? Мои текущие мысли состоят в том, чтобы привести оба этих вектора к пустым массивам, а затем пройтись по N разам и сравнить каждую запись по каждому индексу, но мне это показалось немного сложным. Есть ли альтернатива?

1 Ответ

2 голосов
/ 06 ноября 2019

Что-то вроде

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

должно работать.

...