EfficientNet图示

EfficientNet图示

注:下述图片来自 Vardan Agarwal

● EfficientNet的基本结构和B0至B7的整体结构图示

目录


EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

I 摘要

“卷积神经网络(ConvNets)通常是在固定资源预算下开发的,如果有更多资源可用,则会进行扩展以提高准确性。在本文中,我们系统地研究了模型缩放,并确定仔细平衡网络的深度,宽度和分辨率可以带来更好的性能。基于此观察结果,我们提出了一种新的缩放方法,该方法使用简单而高效的复合系数来均匀缩放深度/宽度/分辨率的所有维度。我们证明了此方法在扩大MobileNets和ResNet方面的有效性。

更进一步,我们使用神经体系结构搜索来设计一个新的基准网络,并对其进行扩展以获得称为EfficientNets的模型系列,该模型系列比以前的ConvNets具有更高的准确性和效率。特别是,我们的EfficientNet-B7在ImageNet上达到了最先进的84.3%top-1精度,同时比现有的最佳ConvNet缩小了8.4倍,推理速度提高了6.1倍。我们的EfficientNets还可以很好地传递并在CIFAR-100(91.7%),Flowers(98.8%)和其他3个传递学习数据集上达到最先进的精度,参数要少几个数量级。源代码位于此httpsURL上。”


通俗而言,模型优化无外乎 网络深度(depth)、网络宽度(width)和输入图像分辨率 (resolution)大小,在比赛或研究中也都是以这三方面的其中一方面进行优化调优。而EfficientNet全都考虑,最终的实验效果如下:
EfficientNet图示
EfficientNet,迄今最强

II 结构

2.1 头和尾

EfficientNet图示
从EfficientNet B0-B7其模型结构的头和尾都如上图所示

2.2 躯干

EfficientNet图示
但不同的是每个模型内部的躯干组成数量不同,但是躯干的基本元素却是相同的,都只有这五个部分:

  • 模块 1— 子block的起点;
      卷积 DC + 标准化 BN + 激活
  • 模块 2 — 除第一个模块外的所有7个主要模块的第一个子block的起点;
      平均池化GAP + 拉伸缩放 Rescal + 卷积卷积
  • 模块 3 — 跳跃连接到所有的子block;
     卷积 DC + 标准化 BN + 激活 + 填充Padding + 卷积 DC + 标准化 BN + 激活
  • 模块 4 — 将跳跃连接合并到第一个子block中;
      乘 + 卷积 + 标准化 BN
  • 模块 5 — 每个子block都以跳跃连接的方式连接到之前的子block,并使用此模块进行组合;
      乘 + 卷积 + 标准化 BN + 输出

这些模块还可被组合成下述子模块
EfficientNet图示

2.3 整体结构

2.3.1 B0

EfficientNet图示

EfficientNet B0的模型结构如上图所示,x2代表重复两次

2.3.2 B1

EfficientNet图示

2.3.3 B2

B2与B1相同,唯一的区别是特征图(通道)的数量不同,增加了参数的数量

2.3.4 B3

EfficientNet图示

2.3.5 B4

EfficientNet图示

2.3.6 B5

EfficientNet图示

2.3.7 B6

EfficientNet图示

2.3.8 B7

EfficientNet图示

上述模型之间的差异就在于逐增子block的数量。

上一篇:【EfficientNet】《EfficientNet:Rethinking Model Scaling for Convolutional Neural Networks》


下一篇:【图像分类】——来来来,干了这碗EfficientNet实战(Pytorch)