1x1卷积核的作用
1 灵活的改变数据维度 减少参数量和计算量
改变数据维度这个很常见 比如输入一个(28,28.256)的特征图 通过 一个(1,1,256,16)的卷积核卷积以后(假设步长是1p=0 ) 那么结果就是变成一个(28,28,16)的特征图 不用多解释了!
简单解释一下上图 首先上面的图是正常的 参数量简单计算一下
s = 1 , p = 2
首先输入是28*28*256的特征图
所以卷积核参数量为 5*5*256 一共有32 个 参数量是 5*5*256*32
因为步长是1 所以28*28的特征图 需要卷积核遍历 28*28 次 所以一共次参数量是 28*28*5*5*256*32 = 160.5M
但是如果通过下面的方式用1*1 的卷积核改变维度在计算在恢复维度呢?
首先同样输入是 28*28*256
s =1 p = 0这次第一次是卷积核1*1 的 16个 那么参数量是1*1*256*16
然后 输入是一个28*28*16的特征图
s = 1 p =2 然后通过卷积核大小是5*5 一共32个 那么参数量是5*5*16*32
输出结果和上面一样都是28*28*32的特征图 但是通过1*1 卷积核提维降低维度以后 参数量之和只有13.25M L
代替全连接层
如上图可知 我们只需要用4096个同样维度大小的卷积核 在乘以1000个同特征图大小维度一样的卷积核 就可以做到全连接层同样的效果 他们是相互等价的
但是这种全连接或者类似全连接层会导致丧失空间信息 不利于物体检测
yolov4 的 1x1 卷积是思路
但是1x1 的卷积核改变数据维度可以保留 特征图的空间特征
找一个网图说的很清楚
这样一个1*1 的卷积核 既不改变特征图的大小又保留的空间特征