EfficientNet自2019年谷歌提出以来,经历了三个版本,2019EfficientNet ——> 2020EfficientNet-Lite——> 2021EfficientNetv2
对于EfficientNet和EfficientNetv2的解读可见另外两篇博客:
EfficientNet论文解读,EfficientNetv2论文解读。
严格来说,我们现在讨论的轻量级模型,只有EfficientNet-b0/b1/b2/b3,EfficientNetv2-b0/b1/b3/S以及专门针对移动端改进的EfficientNet-Lite属于轻量级模型这个标准。它们汇总的参数及ImageNet数据集上的表现如下:
1、EfficientNet
2、EfficientNetv2
3、EfficientNet-Lite
Tensorflow博客上关于EfficientNet-lite的介绍:https://blog.tensorflow.org/2020/03/higher-accuracy-on-vision-models-with-efficientnet-lite.html
2020年3月中旬,谷歌同时在GitHub和TFHub上发布了EfficientNet-Lite,它运行在TensorFlow Lite上,专为移动CPU, GPU和EdgeTPU的性能而设计。EfficientNet-Lite将EfficientNet的功能带到边缘设备,并提供了五种变体结构,允许用户从低延迟/模型大小选项(EfficientNet-Lite0)到高精度选项(EfficientNet-Lite4)进行选择。
为了让模型适配边缘端推理,它相对于原版的EfficientNet做了如下改进:
1、 移除了squeeze-and-excite (SE),因为某些移动加速器不支持;
2、 用ReLU6激活函数替换所有的swish激活函数,以便于后量化;
3、 为了让模型尽量小而快,在缩放模型尺度时,固定stem和head部分。
下面是它和其他模型量化后推理时间及ImageNet上top1的比较
EfficientNet-Lite通过缩放得到的各种变体版本的参数量及耗时和ImageNet上top1精度如下表:
参考:
EfficientNet-Lite官方Github链接:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet/lite
Tensorflow博客:https://blog.tensorflow.org/2020/03/higher-accuracy-on-vision-models-with-efficientnet-lite.html