CNN模块设计
AlexNet(2012)
分组卷积
操作:先将特征通道分组,再卷积操作限制在对应组内。
优点:减少了浮点运算量和参数量。
缺点:阻碍了通道之间的信息流,削弱了网络的表达能力。
ShuffleNet(2018)
通道洗牌操作:用较小的代价实现了组卷积通道间的信息交互,精度提升。
ShuffleNetV2
通道划分操作代替分组卷积
MobileNet(2017)
深度可分离卷积:将标准卷积拆分为深度卷积和点卷积,其中深度卷积为分组数等于通道数的组卷积。
MobileNetV2(2018)
倒置残差模块:由一个升维的点卷积、一个深度卷积、一个降维的点卷积以及残差连接组成.
MobileNetV3(2019)
倒置残差模块加入SE模块:引入了h-swish作为非线性激活函数,同时引入了网络搜索技术来进一步提高网络效率.
EfficientNet(2020)
基于 MobileNetV2模块使用网络搜索技术
EfficientNetV2(2021)
利用优化器的角度改进了MobileNetV3模块,并将其加入搜索空间
原始卷积
由图可以看到,卷积过程为:将filter与矩阵叠加,然后执行相应元素的相乘,将相乘的结果进行求和,得到输出图片的目标像素值(特征图),重复操作在所有位置上。
卷积核的不同可以提取不同的特征
代码实现:
1 | import numpy as np |

使用pytorch实现:
1 | import torch |
分组卷积
特性:参数量减少,是普通卷积的1/group倍。用来降低参数量,就是速度会减慢。
1 | #分4组 |
深度可分离卷积
1 | class DepthwiseSeparableConv(nn.Module): |