一次迭代两个 Pytorch 张量



我有两个 Pytorch 张量(实际上,只是一维列表(,t1t2 。是否可以并行迭代它们,即执行类似

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

谢谢。

对我来说

(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正常工作。

你可以

试试: torch.stack(seq, dim=0, out=None) → Tensor
有关详细信息,请参阅 Pytoch 文档

PyTorch 中的张量压缩到一个使用torch.stack中,并带有 dim=1

t1 = torch.tensor([1, 2, 3])
t2 = torch.tensor([10, 20, 30])
t3 = torch.tensor([100, 200, 300])
res = torch.stack((t1, t2, t3), dim=1)
#output
#tensor([[  1,  10, 100],
#        [  2,  20, 200],
#        [  3,  30, 300]])
将它们

torch.cat(dim=1) 连接起来会更有意义; 然后,您可以迭代新的张量。

最新更新