0

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

4

1 回答 1

1

维度总是必须是整数。从nn.Conv2d- 形状

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 回答