DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(一)-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(一)

简介: DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
+关注继续查看

ShuffleNetV2算法的简介(论文介绍)


     ShuffleNetV2是ShuffleNet的升级版本。


Abstract  

     Currently, the neural network architecture design is mostly  guided by the indirect metric of computation complexity, i.e., FLOPs.  However, the direct metric, e.g., speed, also depends on the other factors  such as memory access cost and platform characterics. Thus, this work  proposes to evaluate the direct metric on the target platform, beyond  only considering FLOPs. Based on a series of controlled experiments,  this work derives several practical guidelines for efficient network design.  Accordingly, a new architecture is presented, called ShuffleNet V2.  Comprehensive ablation experiments verify that our model is the stateof-the-art  in terms of speed and accuracy tradeoff.  

Keywords: CNN architecture design, efficiency, practical

摘要

     目前,神经网络体系结构设计大多以计算复杂度的间接度量为指导,即FLOPs。然而,直接度量(如速度)也取决于其他因素,如内存访问成本和平台特性。因此,这项工作建议评估目标平台上的直接指标,而不仅仅是考虑故障。在一系列受控实验的基础上,得出了有效网络设计的几种实用指导原则。因此,提出了一种新的体系结构,称为ShuffleNet V2。综合消融实验验证了我们的模型在速度和精度上是最先进的。

关键词:CNN架构设计;高效;实用

Conclusion  

     We propose that network architecture design should consider the direct metric  such as speed, instead of the indirect metric like FLOPs. We present practical  guidelines and a novel architecture, ShuffleNet v2. Comprehensive experiments  verify the effectiveness of our new model. We hope this work could inspire future  work of network architecture design that is platform aware and more practical.

结论

     我们建议网络架构设计应考虑直接指标如速度,而不是间接指标(如FLOPs)。我们提出了实用的指南和一个新颖的体系结构,ShuffleNet v2.。综合实验验证新模型的有效性。我们希望这项工作能够激发未来网络架构设计的工作,使其具有平台意识和更实用性。


论文

Ningning Ma, XiangyuZhang, Hai-Tao Zheng, Jian Sun.

ShuffleNetV2: Practical Guidelines for Efficient CNN Architecture Design. ECCV 2018.

https://arxiv.org/abs/1807.11164



1、论文特点


     度量标准太单一:目前,神经网络架构设计主要由计算复杂度的间接度量(即FLOPs)所指导。然而,直接度量(例如,执行速度)还取决于诸如存储器访问成本和平台特性之类的其他因素。因此,作者建议评估目标平台上的直接度量,而不仅仅考虑FLOPs。

    ShuffleNetV2采用更好的度量标准:基于一系列对照实验,该论文为有效的网络设计提供了一些实用指南,并提出了一种称为ShuffleNetV2的新架构。



2、基于硬件平台的性能分析


1、四种不同计算复杂度的硬件平台上,测量四种网络架构的准确度(验证集上的ImageNet分类),速度和FLOPs


image.png


        在两个具有四种不同计算复杂度的硬件平台上测量四种网络架构的准确度(验证集上的ImageNet分类),速度和FLOPs。

(a,c)GPU结果,batchsize= 8.(b,d)ARM结果,batchsize= 1。在所有情况下,性能最佳的算法,即论文提出的ShuffleNetv2(位于右上角区域)的准确度、复杂度都有明显提高。



2、ShuffeNetv1 和 MobileNetv2 两个架构在不同计算平台上的分解

     在两个具有代表性的最先进的网络架构上运行时分解:ShuffeNetv1 (1×, g = 3) 和 MobileNetv2 (1×).

     Run time decomposition on two representative state-of-the-art network architectures, ShuffeNetv1 (1×, g = 3) and MobileNetv2 (1×). 比如卷积操作、Shuffle操作、Elemwise逐点操作等操作所需时间占比分布图,明显的看出:

(1)、卷积操作占用了大部分的计算量,Elemwise逐点操作次之。

(2)、不同的操作平台,比如卷积操作占用时间也不一样。


image.png



3、间接指标(FLOPs)和直接指标(速度)之间的差异


分析——问题原因:间接指标(FLOPs)和直接指标(速度)之间的差异可归因于两个主要原因:


1、首先,FLOPs没有考虑几个对速度有相当影响的重要因素。

(1)、一个这样的因素是存储器访问成本(MAC,memory access cost )。在诸如组卷积的某些操作中,这种成本占运行时的很大一部分。它可能是具有强大计算能力的设备(例如GPU)的瓶颈。在网络架构设计中不应忽略此成本。

(2)、另一个是并行度。在相同的FLOPs下,具有高并行度的模型可能比具有低并行度的另一个模型快得多。

2、其次,具有相同FLOPs的操作,可能具有不同的运行时间,具体取决于平台。例如,张量分解广泛用于早期工作以加速矩阵乘法。然而,最近的工作发现尽管分解将FLOPs降低了75%,在GPU上甚至更慢。当然不能认为3×3转换,比1×1转换慢9倍。作者发现这是因为最新的CUDNN 库专门为3×3卷积转换而优化。

思考——解决方法:通过这些观察,作者提出应该考虑两个原则来进行有效的网络架构设计。


首先,应该使用直接度量(例如,速度)而不是间接度量(例如,FLOPs)。

其次,应在具体的目标平台上,进行评估此类指标。


3、该论文实验采用的硬件


作者的研究是在两个广泛采用的硬件上进行的,具有CNN库的行业级优化。


GPU:使用单个NVIDIA GeForce GTX 1080Ti。卷积库是CUDNN 7.0 。还激活了CUDNN的基准测试功能,分别为不同的卷积选择最快的算法。

ARM:Qualcomm Snapdragon 810。使用高度优化的基于Neon的实现。评估时使用单个线程。其他设置包括:接通完全优化选项(例如,用于减少小操作的开销的tensor fusion)。输入图像大小为224×224。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
更快的Maven来了,我的天,速度提升了8倍!(3)
更快的Maven来了,我的天,速度提升了8倍!(3)
45 0
教育培训机构使用阿里云无影桌面优缺点
配置灵活,GPU满足设计产品线,价格低廉,随开随用。
28 0
【mockito】单元测试之mockito简单使用
项目使用的是springmvc+mybatis 开发; mock包为 mockito-all;虽然也引用了powermock,但截至目前,还未使用到;如果使用到后续再补相关笔记。
15 0
浅谈我对DDD领域驱动设计的理解
DDD的全称为Domain-driven Design,即领域驱动设计。下面我从领域、问题域、领域模型、设计、驱动这几个词语的含义和联系的角度去阐述DDD是如何融入到我们平时的软件开发初期阶段的。要理解什么是领域驱动设计,首先要理解什么是领域,什么是设计,还有驱动是什么意思,什么驱动什么。
12 0
阿里云天池大赛赛题解析——机器学习篇-赛题一(7)
阿里云是国内知名的云计算、大数据、人工智能技术型公司,是阿里巴巴集团最重要的技术部门。阿里云天池是阿里云面向开发者和教育行业的资源输出部门,天池大赛是国内最大规模的人工智能算法赛事,致力于汇聚全球AI精英为企业解决真实问题。自2014年至今已举办数十次行业顶级算法赛事,全球参赛开发者超过30万人。然而对于更广大的普通开发者和大学生群体来说,高规格的算法大赛仍然具有很高的门槛。本书就是针对受众最广泛的新手人群而编写的,精选阿里巴巴最典型的人工智能算法应用案例,邀请天池大赛最顶级的获奖选手联合编撰,公开那些鲜为人知的技术秘籍,力图使每一个涉足数据智能算法技术的开发者从中获益......
10 0
python中对切片的理解
字符串还支持 切片。索引可以提取单个字符,切片 则提取子字符串: >>>
13 0
python测试框架-pytest
python测试框架-pytest 一、pytest 介绍、运行、参数化和数据驱动、Fixture pytest安装与介绍 官网 : pip install -U pytest 查看版本号:pytest --version 为何选择pytest 兼容unittest 定制化插件开发 pycharm 配置github VSC--Git--Remotes... pycharm pytest 配置 settings--搜索pytest--Python integrated Tools--testing--选择pytest:根据黄色叹号fix安装pytest安装到环境
23 0
云起第一期学习体会(报告)
云起第一期学习体会(报告)
25 0
Intel Xeon Platinum (Cooper Lake) 8369性能评测 阿里云第七代ECS服务器
Intel Xeon Platinum (Cooper Lake) 8369性能评测 阿里云第七代ECS服务器
10 0
产业白热化竞争来临,看人工智能如何带动经济数智化发展
人工智能的发展主要围绕着语言、数学和逻辑推理能力的进步。未来,人工智能的将围绕提升预测准确性和情商能力而发展,为行业数智化转型带来层层浪潮。
14 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载