Преобразовать список тензоров в тензор тензоров - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть переменная a, которая представляет собой несколько таких тензоров:

[tensor([0.0014, 0.0021, 0.0015, 0.0007, 0.0012, 0.0024, 0.0021, 0.0019, 0.0010,
        0.0010])]
[tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])]

....

И когда я хочу сделать это как часть моего кода:

x = torch.tensor(a, dtype=torch.float)

Я получил эту ошибку:

ValueError: only one element tensors can be converted to Python scalars

Что я предположил, что, возможно, мне нужно преобразовать каждый тензор в a следующим образом:

[tensor([[0.0014], [0.0021], [0.0015], [0.0007], [0.0012], [0.0024], [0.0021], [0.0019], [0.0010],
        [0.0010]])]
[tensor([[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]])]

Правильно ли я думаю? или что мне нужно именно для того, чтобы избежать ошибки выше?

Любая помощь, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

В pytorch вы можете использовать метод view () для изменения тензора. Используйте этот код, чтобы быть точным:

t2 = t1.view(t1.shape[0],-1), где t1 - тензор, который должен быть изменен.

Рабочий код:

t1 = torch.Tensor([1.6455e-04, 1.2067e-04, 4.3461e-04, 2.0265e-04, 1.4014e-04, 2.0691e-04,
        1.2612e-04, 9.2561e-05, 9.4662e-05, 7.3938e-05])

tensor_lst = []
tensor_lst.append(t1)

res_t = [] #reshaped tensor
for i in range(len(lst)):
    res_t.append(lst[i].view(lst[i].shape[0],-1))

print(res_t)

0 голосов
/ 17 апреля 2020

Легко, просто измените его. Предполагая, что ваш тензор / тензоры хранятся в списке под названием tlist:

tlist = [t.reshape(-1,1) for t in tlist]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...