【轻量级网络】--ShuffleNet V2论文解读

ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design
参考文章:https://blog.csdn.net/u014380165/article/details/81322175

Abstract

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

1 Introduction

实时任务通常旨在在由目标平台(例如,硬件)和应用场景(例如,自动驾驶需要低等待时间)给出的有限计算预算下获得最佳准确度。这激发了一系列针对轻量级架构设计和更快速度准确性的工作,包括Xception ,MobileNet ,MobileNet V2 ,ShuffleNet和CondenseNet 。Group convolution 和depth-wise convolution 这些工作中至关重要。

为了测量计算复杂性,广泛使用的度量是浮点运算的数量,或FLOPs,这个指标主要衡量的就是卷积层的乘法操作。但是这篇文章通过一系列的实验发现FLOPs并不能完全衡量模型速度,比如在Figure1(c)(d)中,相同MFLOPs的网络实际速度差别却很大,因此以FLOPs作为衡量模型速度的指标是有问题的。
在这里插入图片描述
间接(FLOPs)和直接(速度)指标之间的差异可归因于两个主要原因。首先,FLOP没有考虑几个对速度有很大影响的重要因素。一个这样的因素是内存访问消耗时间(MAC)。在诸如group卷积的某些操作中,这种成本占运行时的很大一部分。它可能是具有强大计算能力的设备(例如GPU)的瓶颈。另一个是并行度。在相同的FLOP下,具有高并行度的模型可能比具有低并行度的另一个模型快得多。

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

通过这些观察,我们提出应该考虑两个原则来实现有效的网络架构设计。首先,应该使用直接度量(例如,速度)而不是间接度量(例如,FLOPs)。其次,应在目标平台上评估此类指标。

2 高效网络设计实用指南

我们的研究是在两个广泛采用的硬件上进行的,输入图像大小为224×224。每个网络随机初始化并评估100次。

为了开始我们的研究,我们分析了两个SOTA的网络的运行时间性能,ShuffleNet v1和MobileNet v2。它们广泛用于移动设备等低端设备。它们代表了当前的趋势,其核心是group convolution 和 depth-wise convolution,它们也是其他SOTA的关键组件,如ResNeXt ,Xception ,MobileNet和CondenseNet。

整个运行时被分解用于不同的操作,如图2所示。我们注意到FLOPs度量仅考虑卷积部分,虽然这部分消耗的时间最多,但其他操作包括数据I / O,数据shuffle和element-wise操作(AddTensor,ReLU等)也占用了相当多的时间。因此,FLOP对实际运行时的估计不够准确。
在这里插入图片描述

G1)卷积层的输入和输出特征通道数相等时MAC最小

现代网络通常采用深度可分离卷积depthwise separable convolutions,其中逐点卷积(即1×1卷积)占复杂性的大部分。我们研究了1×1卷积的kernel shape。形状由两个参数指定:输入通道数 c 1 {c_1} c1和输出通道数 c 2 {c_2} c2。设h和w为特征映射的spatial size,1×1卷积的FLOPs为 B = h w c 1 c 2 B = hw{c_1}{c_2} B=hwc1c2,更具体的写法是 B = 1 ∗ 1 ∗ h w c 1 c 2 B = 1*1*hw{c_1}{c_2} B=11hwc1c2

接下来看看存储空间,因为是1*1卷积,所以输入特征和输出特征的尺寸是相同的,这里用h和w表示,其中 h w c 1 hw{c_1} hwc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值