转载https://blog.csdn.net/weixin_43572595/article/details/110563397
直观理解
用一幅图就可以很直观的理解了:
如上图,左边是常规卷积,假设input_features[1, 12, Hi, Wi], output_features[1, 6, Ho, Wo],此时需要的kernel[12, 6, K, K], 卷积核的总参数量为126KK;右边为分组卷积,分组即将input_features进行分组,假设这里将input_features分为三组,每组有四个维度,那么每一组的input_features[1, 4, Hi, Wi], 输出的output_features[1, 2, Ho, Wo],此时每组需要的Kernel[4, 2, K, K], 每组的卷积核参数总量为42KK, 一共有三组,所以分组卷积时卷积核总的参数量为42KK3。参数量是常规卷积的1/3。假设分组卷积分为G组,那么参数量就变为常规卷积的1/G。
分组卷积的作用
- 减少参数量
- 有时候可以起到正则化的效果
- Depthwise Convolution,参见MobileNet和Xception等
深度可分离卷积
当分组数量等于输入map数量,输出map数量也等于输入map数量,即G = N = C , N 个卷积核每个尺寸为1 * K * K时,分组卷积就变成了深度卷积。(用深度卷积主要进行像素的融合)