在pytorch中堆叠二进制掩码框架?

时间:2020-04-27 21:00:03

标签: python stack pytorch tensor

我正在使用Pytorch尝试使用每个堆栈都具有二进制掩码的三维张量的“堆栈”来创建4维张量(二进制掩码)。

三维张量具有704个宽度和1080个高度的二进制掩码中的某些分段对象的n个实例。

可以说我有3个这些3维张量。它们的大小均为[n,704,1080],其中n是框架中单个对象的数目(因此,单个二进制掩码),704是高度,而1080是宽度:

t1.size = torch.Size([9, 704, 1280])
t2.size = torch.Size([12, 704, 1280])
t3.size = torch.Size([10, 704, 1280])

我想通过添加第四维a创建它们的堆栈。即。 [a,n,704,1280],其中a是原始3维张量。

目标是拥有一个4维张量,该张量可以容纳众多3维张量的数据。

我已经尝试过torch.stack([t1, t2, t3]),但是由于第二维n在所有张量之间都不一致,因此无法正常工作。

由于堆栈不起作用,我该怎么办?

1 个答案:

答案 0 :(得分:1)

不能。 除第一个以外的所有张量尺寸必须相同。 唯一的方法是,将虚拟行附加到第一张量和第三张量上,以使其具有相同的大小(12,704,1280)

或者您可以将其堆叠在一个3维张量中。