前言
目前提高CNN精度的方法,主要是通过任意增加CNN深度或宽度,或使用更大的输入图像分辨率进行训练和评估。
EfficientNet的成绩
EfficientNet-B7在ImageNet上实现了最先进精度的84.4%(Top 1)、97.1%(Top 5),同时比最好的现有ConvNet小84倍,推理速度快6.1倍;在CIFAR-100(91.7%)、Flower(98.8%)和其他3个迁移学习数据集上,也能很好地传输和实现最先进的精度。参数减少一个数量级,效率却提高了10倍(更小,更快)。
如何做到的
这种复合缩放方法的第一步是执行网格搜索,在固定资源约束下找到基线网络的不同缩放维度之间的关系(例如,2倍FLOPS),这样做的目的是为了找出每个维度的适当缩放系数。然后应用这些系数,将基线网络扩展到所需的目标模型大小或算力预算。
新模型缩放的有效性,很大程度上也依赖基线网络。
为了进一步提高性能,研究团队还通过使用AutoML MNAS框架执行神经架构搜索来开发新的基线网络,该框架优化了准确性和效率(FLOPS)。
由此产生的架构使用移动倒置瓶颈卷积(MBConv),类似于MobileNetV2和MnasNet,但由于FLOP预算增加而略大。然后,通过扩展基线网络以获得一系列模型,被称为EfficientNets。
作者
第一作者是谷歌的高级软件工程师Mingming Tan,北大博士,在康奈尔大学获得博士后学位。
第二作者Quoc V. Le现在是谷歌的一名软件工程师,在斯坦福获得博士学位。
论文链接
Github链接
-
官网版
https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet -
PyTorch版
https://github.com/lukemelas/EfficientNet-PyTorch -
keras版:
https://github.com/qubvel/efficientnet