我正在查看 PyTorch 中的模型实现。第一层是卷积层,滤波器大小 = 7,步幅 = 2,填充 = 3。网络的标准输入大小为 224x224x3。基于这些数字,输出维度为 (224 + 3*2 - 7)/2 + 1,它不是整数。原始实现是否包含非整数维度?我看到网络在 FC 层之前具有自适应池化,因此可变输入尺寸不是问题(我通过改变输入大小对此进行了测试)。我做错了什么,或者为什么作者在设计 ResNet 时会选择非整数维度?
问问题
815 次
1 回答
1
维度总是必须是整数。从nn.Conv2d
- 形状:
仅向底部闭合的括号表示地板操作(向下舍入)。计算变为:
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
使用整数除法具有相同的效果,因为它总是将其向下舍入到最接近的整数。
于 2020-06-09T22:47:43.677 回答