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。


相关实践学习
通过GPU云服务器生成AI视频
本教程介绍如何使用GPU云服务器搭建Stable Diffusion模型,并基于ModelScope框架,实现使用文本生成视频。
相关文章
|
3月前
|
负载均衡 安全 Dubbo
深入浅出微服务:40个微服务架构实战案例(Dubbo+Springcloud)
微服务在近几年来可以说是十分火爆,我们应该知道微服务的发展历程大致分为6个阶段分别是:单体应用阶段提、垂直应用阶段、分布式系统阶段、服务治理阶段、微服务阶段、最后到服务网格阶段。
|
5月前
|
机器学习/深度学习 存储 人工智能
《云原生架构容器&微服务优秀案例集》——01 互联网——vivo AI 计算平台的 ACK One 混合云实践
《云原生架构容器&微服务优秀案例集》——01 互联网——vivo AI 计算平台的 ACK One 混合云实践
237 0
|
5月前
|
运维 自然语言处理 Kubernetes
《云原生架构容器&微服务优秀案例集》——01 互联网——合阔智云 通过 ASM 轻松实现微服务治理
《云原生架构容器&微服务优秀案例集》——01 互联网——合阔智云 通过 ASM 轻松实现微服务治理
118 0
|
5月前
|
存储 运维 Kubernetes
《云原生架构容器&微服务优秀案例集》——01 互联网——禾连健康 低容错业务的增效之路
《云原生架构容器&微服务优秀案例集》——01 互联网——禾连健康 低容错业务的增效之路
73 0
|
5月前
|
自然语言处理 运维 监控
《云原生架构容器&微服务优秀案例集》——01 互联网——站酷 基于 ASM 解决多语言技术栈下服务管理难题,实现运维提效
《云原生架构容器&微服务优秀案例集》——01 互联网——站酷 基于 ASM 解决多语言技术栈下服务管理难题,实现运维提效
105 0
|
5月前
|
安全 Cloud Native 算法
《云原生架构容器&微服务优秀案例集》——01 互联网——唱鸭 轻松玩转 DevSecOps,用 ACR EE 构建安全高效交付流程
《云原生架构容器&微服务优秀案例集》——01 互联网——唱鸭 轻松玩转 DevSecOps,用 ACR EE 构建安全高效交付流程
152 0
|
5月前
|
机器学习/深度学习 人工智能 运维
《云原生架构容器&微服务优秀案例集》——01 互联网——任意门 基于云原生 AI 套件打造人工智能的社交网络平台
《云原生架构容器&微服务优秀案例集》——01 互联网——任意门 基于云原生 AI 套件打造人工智能的社交网络平台
146 0
|
5月前
|
编解码 人工智能 运维
《云原生架构容器&微服务优秀案例集》——01 互联网——核桃编程 基于 ARMS 构建可观测体系,全方位提升用户体验
《云原生架构容器&微服务优秀案例集》——01 互联网——核桃编程 基于 ARMS 构建可观测体系,全方位提升用户体验
106 0
|
5月前
|
人工智能 运维 Prometheus
《云原生架构容器&微服务优秀案例集》——02 汽车/制造——小鹏汽车 基于云原生实现研发提效,加速探索未来出行
《云原生架构容器&微服务优秀案例集》——02 汽车/制造——小鹏汽车 基于云原生实现研发提效,加速探索未来出行
144 0
|
5月前
|
云安全 运维 安全
《云原生架构容器&微服务优秀案例集》——02 汽车/制造——东风日产 借力 ASM 实现流量精细化管控
《云原生架构容器&微服务优秀案例集》——02 汽车/制造——东风日产 借力 ASM 实现流量精细化管控
103 0
相关产品
机器翻译
推荐文章
更多