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。


相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
3086 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
1026 6
|
人工智能 Cloud Native 中间件
划重点|云栖大会「AI 原生应用架构论坛」看点梳理
本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
2001 0
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
609 0
|
Web App开发 Linux 虚拟化
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
658 0
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
1143 4
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
601 3

热门文章

最新文章