pytorch如何像张量一样堆叠张量

时间:2019-09-13 05:53:27

标签: python pytorch

我想连接在for循环中生成的张量,并获取2dTensor。
标准python,如下所示。

li = []
for i in range(0, len(items)):
    # calc something
    li.append(calc_result)

在我的情况下,在for循环中,生成torch.Size([768])张量,我想获得torch.Size([len(item),768])张量。
该怎么做?

1 个答案:

答案 0 :(得分:4)

您可以使用torch.stack

torch.stack(li, dim=0)

for循环之后,将为您提供该大小的torch.Tensor

请注意,如果您事先知道最终张量的大小,则可以预先分配一个空张量并将其填充到for循环中:

x = torch.empty(size=(len(items), 768))
for i in range(len(items)):
    x[i] = calc_result

这通常比堆栈快。