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),得到的结果如下图
![]() |