ShuffleNetV2

ShuffleNet V2是一种基于直接度量而非仅依赖FLOPs的网络架构,旨在实现速度与准确性的更好平衡。论文提出4条有效网络设计指导方针,包括最小化内存存取、避免过大的分组卷积、减少分裂网络和降低逐像素操作。ShuffleNet V2在多个平台上表现出优于ShuffleNet V1和其他同类网络的性能。
摘要由CSDN通过智能技术生成

论文地址

摘要

  近年来,神经网络的结构设计极大地被间接度量计算复杂度(如FLOPs)导向,直接度量速度还会被其它因素诸如内存存取消耗和平台特性所影响。因此,我们的工作打算计算目标平台的直接度量,而不仅仅考虑间接度量FLOPs。基于一系列的限制性实验,我们的工作获得了一些有效的网络设计的实用指南。相应地,我们提出了ShuffleNet V2这种新的网络结构。进行了全面的消融实验后,我们证实了在速度和准确率进行权衡的情况下,ShuffleNet V2是最先进的。

介绍

Figure1

  深度神经网络经过最近几年的发展变得更加准确和更加快速。但是在高准确率下计算复杂度这个重要问题被忽略了。实际任务中要求在目标平台(如硬件)和应用场景(如需要低延迟的自动驾驶)这些计算有限制的情况下得到最高的准确率。这激励了一些轻量级网络的研究,并且需要在速度和准确率之间做更好地平衡,此类网络有Xception,MobileNet,MobileNet V2,ShuffleNet和CondenseNet。这些工作中分组卷积和深度卷积有十分重要的作用。
  计算复杂度采用最广泛的度量是FLOPs。但FLOPs是一个间接度量。它只是一个近似值,而且和我们关注的直接度量如速度或延迟通常情况下是不等的,这种差异已经被许多工作证实。因此,仅仅使用FLOPs作为复杂度度量是不充分的,并且会导致设计的架构不是最优的。
  导致间接度量(FLOPs)和直接度量(速度)的差异主要有两个。首先FLOPs没有顾忌对速度有影响的几个重要因素。一个因素是内存访问消耗,这种消耗在某些操作比如分组卷积占有很大一部分运行时间,这可能是大型设备比如GPU的瓶颈。这个成本在网络架构设计的时候不能被忽略。另一个因素是并行度。在相同的FLOPs下,高并行度的网络比低并行度的网络运行更快。另一个因素是相同的FLOPs需要的运行时间不同,这取决于平台。比如,张量分解被广泛地用于早期的加速矩阵乘法运算。但是最近的研究发现分解在减少了75%FLOPs的情况下在GPU上的速度更慢。我们调查发现最新的CUDNN对3x3的卷积会进行特殊优化,并不能确定3x3的卷积一定比9个1x1的卷积速度慢。
  根据这些观察结果,我们提出了两个应该被并用于有效网络架构设计的原则。第一,使用直接度量代替间接度量;第二,在目标平台上计算相同的度量。
  在我们的工作中,我们遵循这两个原则并提出了一个更有效的网络架构。在第二部分,我们首先分析了两个具有代表性的先进网络的运行时间。之后,我们获得了四个有效网络设计的指导方针,这些方针超出了FLOPs的考虑范围,而且与平台无关。我们使用专门优化的代码在两个平台(GPU和ARM)上做了一系列控制实验去证实他们,确信我们的结果是最先进的。
  在第三部分,根据指导方针,我们设计了一个新的网络结构。它是ShuffleNet网络的衍生版本,名为ShuffleNet V2。经过第四部分全面的实验后证实ShuffleNet V2在所有的平台上比之前的网络更快更准确。

有效网络设计的实际指导方针

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值