ResNet 中不同空间大小的快捷连接

机器算法验证 深度学习 张量流 残差网络
2022-03-20 00:19:27

如果我拿论文“深度残差学习用于图像识别”的图3,看看下面的残差网络:

3×3 转换,64 个过滤器

   | (X) (suppose shape is 14*14*64
   v

3×3 转换,128 个过滤器,步幅=2

   | (X') (shape will be 7*7*128
   v

3×3 转换,128 个过滤器

   |
   v (F(X) (shape will be 7*7*128)

因此,我必须(按元素)对不同形状的结果 X+F(X) 求和。然而,虽然 1×1 卷积可以帮助获得相同的深度(特征数量),但为 X 和 F(X) 获得相同宽度/高度的传统方法是什么?

我应该计算 MaxPooling(X, stride=2) + F(X) 吗?

3个回答

我最近碰巧读了这篇论文。本文介绍了一种快捷投影来匹配维度。您可以在论文中看到等式 2。第 6 页比较了三种不同的投影选项 A、B、C。

残差网络有一个张量流实现您可以在实际代码中找到快捷投影的实现。

祝你好运!

解决此问题的默认方法是步长为 2 的 1x1 卷积,然后是批处理规范。是的,一半的像素将被忽略。

请参阅 pytorch 中的实现(来自作者工作的 FAIR):链接

我遇到了同样的问题。看起来有两种方法可以解决这个问题:“当输入和输出维度不匹配时,我们在快捷路径中添加一个卷积层。这种排列称为卷积块” https://engmrk.com/residual -networks-resnets/