Resnet18第一层输出维度

Resnet18 first layer output dimensions

我正在查看 PyTorch 中的模型实现。第一层是卷积层,过滤器大小 = 7,步幅 = 2,填充 = 3。网络的标准输入大小为 224x224x3。基于这些数字,输出维度为 (224 + 3*2 - 7)/2 + 1,这不是整数。原始实现是否包含非整数维度?我看到网络在 FC 层之前有自适应池,所以可变输入维度不是问题(我通过改变输入大小来测试这个)。我是不是做错了什么,或者为什么作者在设计 ResNet 时会选择非整数维度?

维度必须始终为整数。来自 nn.Conv2d - Shape:

仅向底部闭合的括号表示地板操作(向下舍入)。计算变为:

import math

math.floor((224 + 3*2 - 7)/2 + 1) # => 112

# Or using the integer division (two slashes //)
(224 + 3*2 - 7) // 2 + 1 # => 112

使用整数除法具有相同的效果,因为它总是向下舍入到最接近的整数。