卷积层与池化层输出尺寸计算

pytorch中定义卷积层

conv2d = torch.nn.Conv2d(in_channels=3,out_channels=64, kernel_size=7, stride=2, padding=3, bias=False)

卷积层与池化层输出尺寸计算_第1张图片

池化层

maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)

卷积层与池化层输出尺寸计算_第2张图片

 公式计算非整数时,向下取整,dilation参数表示空洞卷积(dilated convolution),默认取1

测试

inputSize = 448
convKernal = 7
convStride = 2
convPadding = 1
convDilation = 1
input = torch.randn(3, inputSize, inputSize)

model = nn.Conv2d(3, 64, kernel_size=convKernal, stride=convStride, padding=convPadding)
output = model(input)
outputSize = math.floor((inputSize + 2 * convPadding - convDilation * (convKernal - 1) - 1) / convStride + 1)
print(outputSize)

maxpoolKernal = 2
maxpoolStride = 2
maxpoolPadding = 1
maxpoolDilation = 1
maxpool = nn.MaxPool2d(kernel_size=maxpoolKernal, stride=maxpoolStride, padding=maxpoolPadding)
output2 = maxpool(output)
output2Size = (outputSize + 2 * maxpoolPadding - maxpoolDilation * (maxpoolKernal - 1) - 1) / maxpoolStride + 1
print(output2Size)

你可能感兴趣的:(深度学习,pytorch,神经网络)