EfficientNetV1

280 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

EfficientNetV1:arxiv.org/abs/1905.11…

EfficientNetV1

卷积后都默认跟有BN和swish激活函数

网络亮点

EfficientNetV1

利用网络搜索技术,同时探索输入分辨率、网络的深度、宽度的影响

网络结构

EfficientNetV1

MBConv模块

  • 第一个升维的1x1卷积层,它的卷积核个数是输入特征矩阵channel的n倍
  • 当n=1时,不要第一个升维的1x1卷积层,即Stage2中的MBConv结构都没有第一个升维的1x1卷积层(这和MobileNetV3网络类似)
  • 关于shortcut连接,仅当输入MBConv结构的特征矩阵与输出的特征矩阵shape相同时才存在

在源码中只有使用到shortcut连接的MBConv模块才用Dropout,这里n倍就是MBConv1或者MBConv6的1和6,也就是倍率因子

SE模块

SE模块如图所示,由一个全局平均池化,两个全连接层组成。第一个全连接层的节点个数是输入该MBConv特征矩阵channels的1/4,且使用Swish激活函数。第二个全连接层的节点个数等于Depthwise Conv层输出的特征矩阵channels,且使用Sigmoid激活函数。

其他大小模型参数设置

  • width_coefficient代表channel维度上的倍率因子,比如在EfficientNetB0中Stage1的3x3卷积层所使用的卷积核个数是32,那么在B6中就是32×1.8=57.6接着取整到离它最近的8的整数倍即56,其它Stage同理。
  • depth_coefficient代表depth维度上的倍率因子(仅针对Stage2到Stage8),比如在EfficientNetB0中Stage7的L=4,那么在B6中就是4×2.6= 10.4,接着向上取整即11.

drop_connect_rate是指MBConv中的dropout的随机失活比例,源码中是从0开始慢慢增长到该数值,drop_rate是指FC前的dropout的随机失活比例