9.1 EfficientNet网络详解

- efficientNet总结
系统的总结了构建卷积网络模型的工程经验
- 增加网络深度、特征图channel数量(width)、图像分辨率的影响

视频主要关注如何塔尖efficientNet网络,理论细节需要看原文或者博文
- efficientNet-B0 baseline network架构
Conv3×3就是普通的3×3卷积,Resolution是输入特征图的大小,Channels是输出特征图的channel,MBConv是mobileNet Conv
根据表格可以推断出Conv的stride,比如stage1输入使用的是224×224大小图像,而stage2使用的输入图像大小是112×112,也就是stage1的输出图像大小,所以推断出stride等于2(并且是一组operations中第一个operation的stride)

- efficient中的MBConv结构

流程:1、先经过1×1的卷积层,进行升维;2、然后经过BN和swish激活函数;3、然后经过DW卷积,DW卷积的卷积核k可能是3×3或5×5,stride可能为1也可能为2,具体参数可以参考表格;4、然后经过BN和swish激活函数;5、然后经过SE模块(注意力机制);6、经过1×1的卷积进行降维;7、经过BN、Dropout;8、shortcut连接得到输出
注意点:表格中的三点,补充:第一点里面卷积核个数是输入特征矩阵channel的n倍,n就是上面表格中MBConv后面的数字
- efficient中的SE结构

第二个全连接层的节点个数必须要等于DW Conv输出的特征矩阵的channels数,这样才可以进行乘法操作
第一个全连接层的节点个数是输入该MBConv特征矩阵的channels的1/4
- EfficientNetB0-B7中的参数是如何设置的

关于第二点的解释:stage2~stage8都是MBConv
- dropout_rate

- drop_connect_rate
源码并不是一直都是0.2,而是从小开始,增大到设定的数值
- 总结
准确率高,参数少,但是占用gpu显存多(因为使用分别率高的图像)
注:真实的处理速度和FLOPs并不是一个直接相关的关系,所以给出特定设备上的花费时间会更加有意义