torch.cat沿负尺寸

2024-04-26 21:15:13 发布

您现在位置:Python中文网/ 问答频道 /正文

下面,

 x_6 = torch.cat((x_1, x_2_1, x_3_1, x_5_1), dim=-3)
 Sizes of tensors x_1, x_2_1, x_3_1, x_5_1 are
 torch.Size([1, 256, 7, 7])
 torch.Size([1, 256, 7, 7]) 
 torch.Size([1, 256, 7, 7])
 torch.Size([1, 256, 7, 7]) respectively.
        
 The size of x_6 turns out to be torch.Size([1, 1024, 7, 7])

我无法理解&;沿负维度(本例中为-3)可视化此连接。 这里到底发生了什么? 如果dim=3,情况如何? 对于给定的张量集,dim是否有任何约束


Tags: ofthetosizetorchbeoutare
2条回答

Python提供负索引,因此您可以从列表的末尾开始访问元素,例如,-1是列表的最后一个元素。 在这种情况下,张量有4维,所以-3实际上是第二个元素

从张量代数的角度来看answer by danin并不完全正确,实际上是错误的,因为答案表明问题与访问或索引Python列表有关。事实并非如此

-3意味着我们沿着2nd维度连接张量。(你可以很好地使用1而不是令人困惑的-3)


仔细观察张量形状,它们似乎表示(b, c, h, w),其中b表示批量大小,c表示通道数,h表示高度,w表示宽度

通常情况就是这样,在深层神经网络中编码(可能)图像的最后阶段,我们会得到这些特征图

带有dim=-3torch.cat()操作意味着我们沿着通道c的维度连接这4个张量(见上文)

4*256=>;1024

因此,合成张量以torch.Size([1, 1024, 7, 7])形结束


注释:由于我们人类生活在一个固有的3D世界中,因此很难想象一个四维空间。然而,这里有一些我不久前写的答案,这将有助于获得一些心理图片

相关问题 更多 >