来自华为诺亚方舟实验室、北京邮电大学以及香港科技大学的研究者们提出了一个新的轻量模型范式TinyNet。相比于EfficientNet的复合放缩范式(compound scaling),通过TinyNet范式得到的模型在ImageNet上的精度要优于相似计算量(FLOPs)的EfficientNet模型。

例如, TinyNet-A的Top1准确率为76.8% ,约为339M FLOPs,而EfficientNet-B0类似性能需要约387M FLOPs。另外,仅24M FLOPs 的TinyNet-E的准确率达到59.9%,比之前体量相当的MobileNetV3高约1.9%。

上图部分来源于:https://www.youtube.com/watch?v=mqOdIYxxNCs

论文链接:

https://arxiv.org/pdf/2010.14819.pdf

开源地址:

https://gitee.com/mindspore/mindspore/tree/master/model_zoo/research/cv/tinynet

探索更优的模型压缩范式

深度卷积神经网络(CNN)在许多视觉任务中取得了很大成功。然而,如果要在移动设备上部署AI模型,我们需要持续调整网络深度(模型层数)、宽度(卷积通道的数量)和图像分辨率这些网络结构要素来优化内存使用并减少延迟。

EfficientNet在模型深度,宽度,图像分辨率这三个维度复合缩放来调整神经网络结构。然而EfficientNet更多关注在如何产生大体量的模型,轻量模型的设计有待更好的发掘。

一个直接的方法是应用EfficientNet的缩放公式。例如,我们可以进一步缩小EfficientNet-B0,并得到一个具有200M FLOPs的 EfficientNet- .

然而这种策略无法得到最有效的模型。我们随机生成了100个通过改变基线模型EfficientNet-B0的三维(模型深度,宽度,图像分辨率)得到的网络模型。这些模型的计算量小于或等于基线模型(图1)。我们发现这其中最佳模型的精度比用EfficientNet缩放公式得到的模型高出约2.5%。

图1 图像分类精度与模型的计算量的关系。

使用EfficientNet缩放公式生成的5个的模型(绿色)性能要劣于一些基于EfficientNet-B0随机突变产生的前沿模型(红色)。

本文研究的是模型精度和三个维度(模型深度,宽度,图像分辨率)的关系并希望探索出比EfficientNet更优的模型压缩范式。首先,我们发现对于轻量模型,图像分辨率和模型深度比宽度更重要;然后我们指出,EfficientNet的复合放缩方法不再适合为移动设备设计轻量网络。

因此,我们通过对于前沿模型(图1中的红线)的大量实验和观察探索了一个新的压缩模型的范式‘Tiny Formula’。具体来说,给定FLOPs上限,我们通过在前沿模型上进行高斯过程回归,并用‘Tiny Formula’计算最佳输入图像分辨率和模型深度。然后根据最大FLOPs的约束来确定模型的宽度。

论文中所提出的‘Tiny Formula’简单有效:例如,TinyNet-A的Top1准确率为76.8% ,计算量约为339M FLOPs,而EfficientNet-B0类似性能需要约387M FLOPs。另外,仅24M FLOPs 的TinyNet-E在ImageNet上图像分类的准确率达到59.9%,比当前体量相当的MobileNetV3高约1.9%。该文章原创地研究了如何通过同时改变分辨率、深度和宽度来生成微小且有效的神经网络。

图像分辨率,模型深度和宽度对精度的影响

图像分辨率,模型深度和宽度(Resolution, Depth, Width, 或r, d, w)是影响卷积神经网络性能的三个关键因素。但是,哪一种对性能影响更大现在并没有一个明确的结论。

图2 在200M FLOPs的约束下,调整模型三维(图片分辨率,模型深度和宽度)对精度的影响

我们发现,高精度模型的输入图像分辨率大约在0.8到1.4之间。当r < 0.8时,分辨率越大,精度越高,而当r > 1.4时精度略微下降。在深度方面,高性能的模型深度从0.5到2不等。当固定计算量时,模型宽度与精度大致呈负相关。好模型主要分布在w < 1处。

从图2中我们也发现EfficientNet-B-1精度只有75.8%,精度比相同计算量下的最佳模型要差很多。因此我们需要探索一种新的模型放缩公式,在计算量的约束下获得更好的模型。

探索最优Tiny Formula

实验结果

通过改变计算量系数c的值(c = {0.9, 0.5, 0.25, 0.13, 0.06})我们生成了5个轻量模型,TinyNet-A 到E。跟已有的方法相比,在同等计算量量的情况下,我们的方法能够得到性能更优的模型。其中,RA表示Random Augmentation, 一种自动数据增强的方法。

表1 TinyNet A-E在 ImageNet数据集上的精度与同样体量的业界领先模型对比

为了更好地体现TinyNet的优势,我们展示了EfficientNetB−4和TinyNet-E的可视化类激活图谱(Class Activation Map),如图4所示,相比于EfficientNetB−4,TinyNet-E会关注图片中更相关的部分。

图4 TinyNet-E和EfficientNetB−4类激活图谱(Class Activation Map)对比

TinyNet提出的缩放方法具有很好的泛化性。除了EfficientNet-B0之外,我们还应用了我们的方法来压缩ResNet的网络架构的规模。采用ResNet-50模型作为基线模型,我们应用了EfficientNet和我们的方法对模型进行压缩。在ImageNet-100上的结果如表2所示。我们的模型总体上优于其他模型,表明所提出的‘tiny formula’的有效性。

表2 ImageNet-100数据集上使用不同方法压缩ResNet的精度对比

我们也把TinyNet应用到目标检测任务中。从表3的结果可以看出,我们的TinyNet-D与EfficientNet-B-3相比,其性能大大占优,且计算成本相当。

表3 MS COCO数据集上结果对比

MindSpore 代码实现

相关训练与推理代码,以及使用方法已经开源在:

https://gitee.com/mindspore/mindspore/tree/master/model_zoo/research/cv/tinynet

为了方便大家验证我们的结果,以及创新,我们将模型的结构,以及超参数的设置汇总到了相关代码仓的/script文件夹,我们同时提供了多卡分布式训练的启动脚本。参数设置以单卡训练脚本train_1p_gpu.sh为例:

如果想切换其他的TinyNet模型,只需在—model的位置将模型从tinynet_c更改即可。

相关模型结构定义在/src/tinynet.py中:

其中EfficientNet-B0为基线模型,它的输入图像分辨率,宽度和深度三维值为(1,1,1)。

TinyNet模型沿用了EfficientNet的模块化设计,其中又分为:

DepthwiseSeparableConv,InvertedResidual,SqueezeExcite,DropConnect等模块。

每一个模块都衍生自mindspore.nn.Cell。这些模块统一在GenEfficientNet中被调用,并依据用户给出的图像分辨率,宽度和深度三个数值生成神经网络。MindSpore的网络定义请参考:

https://www.mindspore.cn/tutorial/training/zh-CN/master/use/defining_the_network.html

数据集的加载定义在了/src/dataset.py中,主要使用了MindSpore强大的数据集加载和处理工具mindspore.dataset。具体使用方法大家可以参考:

https://www.mindspore.cn/tutorial/training/en/master/use/load_dataset_image.html

模型权重的指数移动平均(Exponential Moving Average),模型精度验证和训练数据的记录定义在/src/callback.py。利用mindspore.train.callback模块,用户可以灵活地选择每一步训练或每一轮epochs后希望进行的操作,例如模型验证,Loss打印,模型保存,权重平均等。具体使用方法大家可以参考:

https://www.mindspore.cn/doc/api_python/zh-CN/master/mindspore/mindspore.train.html

最后,我们使用MindSpore Lite工具转换了模型权重,并测试了EfficientNet和TinyNet在华为P40上的推理时延。TinyNet-A比EfficientNet-B0的运行速度快15%,但其精度与EfficientNet-B0相似。TinyNet-E与EfficientNet-B-4相比,在同等时延下,精度提升3.2%。

表4. 手机端推理时延对比

端侧模型转换,部署等请参考:

https://www.mindspore.cn/lite

说明:严禁转载本文内容,否则视为侵权。

探索神经网络三维魔方|MindSpore训练和端侧部署TinyNet相关推荐

  1. Paddle Lite端侧部署

    Paddle Lite端侧部署 端侧推理引擎的由来 随着深度学习的快速发展.特别是小型网络模型的不断成熟,原本应用到云端的深度学习推理,就可以放到终端上来做,比如手机.手表.摄像头.传感器.音响,也就 ...

  2. 一个方案搞定从模型量化到端侧部署全流程

    量化的背景 得益于海量数据.超强算力和最新技术,深度学习在视觉.自然语言处理等领域都取得了巨大成功.然而,深度学习模型的网络结构越来越复杂.参数越来越多.计算量越来越大,给模型部署应用带来了不小挑战, ...

  3. 一站式完成车牌识别任务:从模型优化到端侧部署

    交通领域的应用智能化不断往纵深发展,其中最为成熟的车牌识别早已融入人们的日常生活之中,在高速公路电子收费系统.停车场等场景中随处可见.一些企业在具体业务中倾向采用开源方案降低研发成本,但现有公开的方案 ...

  4. Tensorflow模型优化 端侧部署 tflite 量化 稀疏 quantization sparsity

    Tensorflow模型优化 文章目录 Tensorflow模型优化 为什么要模型优化 端侧部署 模型优化方式 Quantization 工具包支持 32 bit float ->16 bit ...

  5. MindSpore端侧手机应用实战:AI垃圾分类应用

    本文来源于:知乎 作者:李锐锋 MindSpore作为一个端边云协同的开源的全场景AI框架,今年3月份开源以来,受到了业界的广泛关注和应用,Gitee指数99分,在码云所有项目中排名第一,这个成绩很了 ...

  6. 15分钟实现AI端计算模型训练、加速与部署 | 百度EasyDL公开课

    主讲人 | 阿达 百度高级研发工程师 量子位 整理编辑 | 公众号 QbitAI 端计算模型目前已应用到各行业的AI落地实践中,如部署在野外气象观测点用于环境监测,以及响应垃圾分类政策用来打造智能垃圾 ...

  7. 直击行业痛点!端侧模型部署的成熟解决方案有了!

    深度学习经过多年发展,AI已经深入人心,事实上,在图像.文本领域,AI在多个产业已经落地了诸多应用,我们熟知的自动驾驶.语音助手,背后就大量运用了AI技术. 当下,飞桨PaddlePaddle.Ten ...

  8. 阿里开源!轻量级深度学习端侧推理引擎 MNN

    AI科学家贾扬清如此评价道:"与 Tensorflow.Caffe2 等同时覆盖训练和推理的通用框架相比,MNN 更注重在推理时的加速和优化,解决在模型部署的阶段的效率问题,从而在移动端更高 ...

  9. 淘宝开源深度学习端侧推理引擎 MNN

    本文由淘宝技术授权,转载请联系原作者 与 Tensorflow.Caffe2 等同时覆盖训练和推理的通用框架相比,MNN 更注重在推理时的加速和优化,解决在模型部署的阶段的效率问题,从而在移动端更高效 ...

最新文章

  1. python wxpython backend wxagg_[宜配屋]听图阁
  2. 鸿蒙51单片机,基于C51系列单片机的交通控制系统设计
  3. JAVA面试常考系列十
  4. zlib-1.2.11手册
  5. 如果你到了20岁,还没到25岁
  6. linux mysql 编译后的版本_LINUX下编译安装最新版本mysql_MySQL
  7. 免费临时邮箱大全,专注个人隐私保护
  8. swing的几种布局
  9. java泊松分布随机数,C语言生成泊松分布随机数
  10. SCORM的对手——LOM
  11. Go语言自学系列 | golang标准库bufio
  12. MYSQL主从部署(Censo:6)
  13. 多节点OpenStack Charms 部署指南0.0.1.dev--41--配置openstack-base-73作为juju管理的openstack云
  14. 编程算法 - 大整数乘法
  15. 【算法题】2309. 兼具大小写的最好英文字母
  16. 蚂蚁集团开源大规模视频侵权定位数据集
  17. loop和goto用法
  18. 一文搞懂Typescript
  19. 未配置appkey或配置错误,uniapp原生安卓插件开发
  20. RASP之IAST扫描器的安装及使用

热门文章

  1. python安装flask模块_Python3.6 安装Flask 模块
  2. NFC技术——2、标签设计
  3. 阿里云ECS服务器配置LAMP使用IP地址无法访问填坑(一)
  4. [安装记录]3、软件安装
  5. NTP校时服务器(GPS北斗卫星校时系统)组成与配置
  6. 给字符数组赋值java_给字符数组赋值的方法
  7. 如何启用 BitLocker 网络解锁
  8. PIM其它特性——IPv6、Anycast RP
  9. 什么行业需要使用高防服务器
  10. 列表经典测试题(无答案版)