Итерировать по двум тензорам Pytorch одновременно? - PullRequest
5 голосов
/ 03 апреля 2019

У меня есть два тензора Pytorch (на самом деле, только 1-D списки), t1 и t2. Можно ли их итерировать параллельно, т.е. сделать что-то вроде

for a,b in zip(t1,t2) ?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 03 апреля 2019

Для меня (Python версии 3.7.3 и PyTorch версии 1.0.0) функция zip работает должным образом с тензорами PyTorch:

>>> import torch
>>> t1 = torch.ones(3)
>>> t2 = torch.zeros(3)
>>> list(zip(t1, t2))
[(tensor(1.), tensor(0.)), (tensor(1.), tensor(0.)), (tensor(1.), tensor(0.))]

Вызов list просто необходим для отображения результата.Итерация по zip работает нормально.

1 голос
/ 03 апреля 2019

Было бы более разумно объединить их с torch.cat(dim=1); затем вы можете перебрать новый тензор.

0 голосов
/ 03 апреля 2019

Вы можете попробовать: torch.stack(seq, dim=0, out=None) → Tensor,
, подробности см. Документация Pytoch

...