我有两个 Pytorch 张量(实际上,只是一维列表(,t1
和 t2
。是否可以并行迭代它们,即执行类似
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)
连接起来会更有意义; 然后,您可以迭代新的张量。