Я некоторое время работал с самостоятельно скомпилированной версией 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