Ошибка, связанная с преобразованием из списка в тензор в Pytorch - PullRequest
0 голосов
/ 18 февраля 2020

Существует переменная 'tmp' (3 измерения).

tmp = [torch.tensor([1]),torch.tensor([2,3])]
type(tmp) -> <class 'list'>
type(tmp[0]) -> <class 'torch.Tensor'>
type(tmp[0][0]) -> <class 'torch.Tensor'>

Я хочу преобразовать 'tmp' в torch.Tensor type.
Но, когда я запускаю этот код ниже, возникает ошибка.

torch.Tensor(tmp)
>> ValueError: only one element tensors can be converted to Python scalars

Как я могу это исправить? torch.stack не может быть эффективным в этом случае, потому что тензоры в 'tmp' не имеют одинаковую форму.

1 Ответ

1 голос
/ 18 февраля 2020

Использование torch.stack - все тензоры должны быть одинакового размера в списке.

>>> torch.stack(tmp)

Пример:

>>> tmp = [torch.rand(2,2),torch.rand(2,2)]

>>> tmp = torch.stack(tmp)
>>> tmp
tensor([[[0.0212, 0.1864],
         [0.0070, 0.3381]],

        [[0.1607, 0.9568],
         [0.9093, 0.1835]]])
>>> type(tmp)
<class 'torch.Tensor'>
...