pytorch 卷积,沿一维 0 步长

数据挖掘 火炬 卷积神经网络
2022-03-11 04:45:08

对于一些方形图像,我想使用带有内核的 torch.nn.Conv2d 作为垂直块。如中,内核大小定义为第一个维度的最大值乘以 1。由于第一个维度没有更多空间,我希望沿着第一个维度有 0 步幅。我尝试使用以下定义:

self.conv1 = torch.nn.Conv2d(3, 32, (max_dim_0, 1),
                                    stride=(0, 1),
                                    padding=0, 
                                    dilation=1,
                                    groups=1, 
                                    bias=True, 
                                    padding_mode='zeros')

但是,这会导致我的训练循环抛出RuntimeError: non-positive stride is not supported异常。有没有办法将内核定义为垂直块?

1个回答

0没有必要将stride 设置为,torch将仅根据输入张量大小进行计算,因此您可以将 stride 设置为(1,1)

对于xsize (batch_size, 3, max_dim_0, max_dim_0)(方形图像),张量输出将是 size (batch_size, 32, 1, max_dim_0)