2026/4/16 9:00:02
网站建设
项目流程
1问题
验证卷积层输入输出shape的计算公式。
多个卷积层连续输出的方法。
2方法
可以采用“截图+文字+代码”的方式描述。
1、我们在对图片进行卷积操作后会得到特征图,它与我们输入的原图的shape不同。通过在网上查阅,我们得到输出高度 = (输入高度 - 卷积核高度 + 2 * 填充) / 步幅 + 1,输出宽度 = (输入宽度 - 卷积核宽度 + 2 * 填充) / 步幅 + 1。 我在刚开始尝试的时候,把公式中的步幅+1一并作为分母,最后得到的结果一直与程序跑出来的结果不同,改正后计算结果与程序的结果终于相同了。 2、 import torch from torch import nn conv = nn.Conv2d( in_channels= 3, out_channels= 64, kernel_size= 3, stride=1, padding=1, ) conv1 = nn.Conv2d( in_channels=64, out_channels=128, kernel_size=3, stride=2, ) if __name__ == '__main__': x = torch.rand(size=(3, 24, 24)) out = conv(x) print(out.shape) out1 = conv1(out) print(out1.shape) 为了连续输出卷积层,我将第一个卷积层的输出作为了第二个卷积层的输入,需要注意的时第一个卷积层的out_channels要与第二层的in_channales相等,不然就无法进行。 如上述代码,我给的输入层数据为(3,24,24),得到的结果如下图
![]() |
3结语
本次我主要探索的就是卷积层连续输出方法,我也在网络上查询了方法,单座后的结果却是出乎意料的简单,只需要对上通道数就可以了。