ResNet 论文中的一个关于 1x1 conv 的细节
早上拓哥考了我几个问题,记录一下:
拓: 立峰, 说一下 1x1 卷积层的作用。
我: 我第一次碰见1x1
卷积层是在深层 resnet
中的 bottle-neck
结构(见下图)。 对神经网络,我们假设 deep is better
, 但是网络深度增加参数量爆炸,这种瓶颈设计在大幅增加网络深度时节省了参数。所以 1x1
卷积层的主要作用就是: 进行 feature map
的维度调整 。bottle-neck
主要是利用 1x1
卷积层降低网络参数量,而1x1
卷积层 更常见的用途是: 对不同层的 feature map
进行 skip connection
时往往会遭遇 channel
数不匹配的情况,所以会经常用到 1x1 conv layer
进行 channle
维度的调整。
此图来源:戳这里
后面我们引申出一个问题: 为什么 VGG
比 ResNet
浅很多,两者的参数量却相当?
讨论结果: 两个原因,一是因为 ResNet
省略了全连接层,,二是因为 ResNet
采用了 bottle-neck
结构。
拓:对不同层的 feature map
进行 skip connection
时也会碰到 spatial size
不匹配的情况,1x1
卷积层可以解决这个问题吗?
我: 理论上是可以的(stride >1
即可 ),但是我没见过。
拓: 不不不, ResNet
中就有。
(拓哥给我看了一下pytorch
中 ResNet
的源码)
我: 我擦, 还真是,我以前咋没在论文中看到呢?(应该是忘了)
拓:论文中有提到过,你看:
我: 啊,看来我思维定势了。这是一个收获,谢谢。
作 者: 月牙眼的楼下小黑
联 系: zhanglf_tmac (Wechat)
声 明: 欢迎转载本文中的图片或文字,请说明出处