PyTorch中Conv2d卷积层输出特征图维度计算疑问
PyTorch Conv2d 输出尺寸推导说明
核心原因是你使用的公式默认要求除法结果为整数,但PyTorch的Conv2d计算时会对除法结果向下取整,不需要输入尺寸满足整除条件,多余的边缘像素会直接舍弃。
计算所用参数
- 输入尺寸:高
H_in=68,宽W_in=224 - Conv2d配置:
conv1 = torch.nn.Conv2d(3, 16, stride=4, kernel_size=(9,9)),未显式指定padding时默认padding=0,因此对应参数为:- 核高
K_h=9、核宽K_w=9 - 步长高
S_h=4、步长宽S_w=4 - 填充高
P_h=0、填充宽P_w=0
- 核高
PyTorch官方Conv2d输出尺寸公式
输出特征高:
H_out = floor((H_in + 2*P_h - K_h)/S_h) + 1
输出特征宽:W_out = floor((W_in + 2*P_w - K_w)/S_w) + 1
其中floor()为向下取整函数,直接取数值的整数部分,舍弃小数位
代入计算
- 高度维度推导
(68 + 2*0 -9)/4 = 59/4 = 14.75,向下取整得14,加1后得到H_out=15 - 宽度维度推导
(224 + 2*0 -9)/4 = 215/4 = 53.75,向下取整得53,加1后得到W_out=54
输出通道数为配置中指定的16,因此最终输出特征尺寸就是16 x 15 x 54,和实际运行结果一致。
内容的提问来源于stack exchange,提问作者sensationti
相关产品推荐
相关产品推荐

