Больше не могу сравнивать тензор со скаляром в новом pytorch - PullRequest
0 голосов
/ 27 октября 2018

Я некоторое время работал с самостоятельно скомпилированной версией pytorch 0.4.0, и, следовательно, мой код имеет следующую строку для многомерных тензоров:

myTensor3 = torch.arange(torch.numel(myTensor0) # this is a 1 dimensional Tensor
outTensor = myTensor3[(myTensor1 == 1) & (myTensor2 != 1)] # myTensor1 and myTensor2 are multidimensional

Всякий раз, когда я пытаюсь перейти на другую (более новую) версию pytorch, в приведенной выше строке выдается следующая ошибка:

IndexError: too many indices for tensor of dimension 1

Я предполагаю, что в более новой версии pytorch индексный массив, возвращаемый операцией сравнения, имеет размерность 1, тогда как раньше он имел тот же размер, что и myTensor3. Как я могу вернуться к старому поведению в более новой версии pytorch?

Edit: Простым решением было линеаризовать myTensor1 и 2:

outTensor = myTensor3[(myTensor1.view(-1) == 1) & (myTensor2.view(-1) != 1)]

по какой-то странной причине это уже работало в само скомпилированной версии pytorch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...