我正在使用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
在所有张量之间都不一致,因此无法正常工作。
由于堆栈不起作用,我该怎么办?
答案 0 :(得分:1)
不能。 除第一个以外的所有张量尺寸必须相同。 唯一的方法是,将虚拟行附加到第一张量和第三张量上,以使其具有相同的大小(12,704,1280)
或者您可以将其堆叠在一个3维张量中。