【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization

摘要

特征重用一直是轻量级卷积神经网络(CNNs)设计中的一种关键技术。目前的方法通常使用concat操作,通过重用其他层的特征映射来保持大的通道数(网络容量大)。虽然concat是没有参数量和计算量的,但它在硬件设备上的计算成本是不可忽略的。针对这一问题,本文为通过结构重参数化技术实现特征重用提供了一个新的视角。提出了一种新的硬件高效的RepGhost模块,通过重新参数化来实现隐式特征重用,而不是使用concat操作。在RepGhost模块的基础上,我们开发了高效的RepGhost bottleneck和RepGhostNet。在ImageNet和COCO基准上的实验表明,所提出的RepGhostNet比GhostNet和MobileNetV3更有效。特别是,我们的RepGhostNet在ImageNet数据集上在以更少的参数和在基于arm的手机上差不多的延迟的情况下,top1准确率比GhostNet 0.5X 多了2.5%倍。

1 引言

随着移动和便携式设备的无处不在,高效的卷积神经网络(CNNs)变得不可或缺。近年来,为了实现相同的网络效率,提出了不同的方法,如轻量级结构设计[3,14,20,31,35,48]、神经结构搜索[13,27,38,44]、剪枝[2,18,30,32]等,并取得了很大的进展。
在架构设计领域,大量的通道往往意味着较大的网络容量[17,23,24],特别是对于轻型CNNs [14,19,31,35]。如上所述在[31]中,给定一个固定的FLOPs,轻量级的cnn更倾向于使用备用连接(例如,分组或深度卷积)和特征重用。它们都得到了很好的探索,近年来有许多具有代表性的轻量级神经网络被提出,[5,14,15,19,20,31,35,47,48]。备用连接的设计是为了保持大网络容量和低浮点操作(FLOPs),而特性重用的目的是通过简单地连接来自不同层[14,23,24,37]的现有特性映射来明确地保持大量的通道(这种大网络容量)。例如,在DenseNet [24]中,以前层的特性映射被重用并发送到一个阶段内它们的后续层,从而产生越来越多的通道。GhostNet [14,15]提议从廉价的操作中生成更多的特征映射,并将它们与原始的特征映射连接起来,以保持大量通道。ShuffleNetV2[31]只处理一半的通道,并保持另一半被concat。它们都利用通过concat操作的特性重用来扩大通道数和网络容量,同时保持低FLOPs。concat似乎一直是特性重用的一种标准和优雅的操作。
concat是没有参数的和FLOPs的,然而,它在硬件设备上的计算成本是不可忽略的,因为参数和FLOPs不是机器学习模型[8,31]实际运行时性能的直接成本指标。为了验证这一点,我们在3.1节中提供了详细的分析。我们发现,由于其复杂的内存副本,concat操作比add操作在硬件设备上的效率要低得多。因此,值得注意的是,探索一种更好、更高效的硬件效率的特性重用方式。
近年来,结构重参数化在CNNs体系结构设计中证明了其有效性,包括DiracNet [46]、ExpandNets[12]、ACNet [10]、RepVGG [11]等。它可以将复杂的训练时间架构转换为更简单的推理时间,相当于在权重空间中,而不需要任何时间代价。受此启发,我们建议利用结构重新参数化,而不是广泛使用的concat,以实现特性隐式重用,以实现硬件高效的架构设计。
在本文中,我们提出了一个通过结构重参数化的硬件高效的RepGhost模块来实现特征重用。请注意,这不仅仅是为了将重新参数化技术应用到Ghost模块中的现有层上,而是为了改进该模块以实现更快的推理。具体来说,我们首先去掉了低效的concat 操作,然后修改了体系结构以满足结构重新参数化的规则。因此,在推理之前,特征重用过程可以从特征空间移动到权重空间,使我们的模块有效。最后,基于RepGhost模块,我们开发了一个硬件效率高的CNNs,命名为RepGhostNet,它在精度-延迟的权衡方面优于之前最先进的轻量级CNNs,如图1所示。我们的贡献总结如下。
•在硬件高效的体系结构设计中,concat操作对于特征重用不是无成本的和不可缺少的,并提出了通过结构重参数化技术实现特征重用的新视角。
•我们提出了一种具有隐式特征重用的RepGhost模块,并开发了一种比GhostNet[14]和MobileNetV3 [19]更高效的硬件效率网RepGhostNet。
•我们表明,我们的RepGhostNet可以在多个视觉任务上比之前更先进的轻量级cnn网络获得更好的性能。

2 相关工作

2.1 Light-weight CNNs

手动设计的[3,20,35,47,48]和基于神经结构搜索(NAS)[7,13,22,42,44]的轻量级cnn主要是为了在更少的参数和更低的Flops情况下获得竞争性能。其中,ShuffleNetV1 [47]和MobileNetV2 [35]通过使用大量的深度卷积而不是密集的卷积来建立基准。FBNet [42,44]采用复杂的NAS技术来自动设计轻量级的体系结构。然而,参数和FLOPs通常不能反映轻型中枢神经网络[8,31]的实际运行时性能(即延迟)。很少有模型直接为低延迟设计,如无代理NAS[27]、MNASNet [38]、MobileNetV3 [19]和洗牌NetV2[31]。本文设计了一种具有低延迟性的高效cnn。
另一方面,cnn中的特性重用也激发了许多令人印象深刻的[14,15,23,24,31,37,45]廉价甚至免费的costs。作为轻量级的cnn,GhostNet [14]使用廉价的操作以低计算成本产生更多的通道,而ShuffleNetv2[31]只处理一半的特性通道,并保持另一半的concat。它们都使用concat操作来保持大的通道数,因为它是无参数量和Flops的。但我们注意到,由于其复杂的内存复制过程,它在移动设备上效率很低,这使得它在轻量级cnn的特性重用中不是必不可少的。因此,在本文中,我们探索了在concat操作之外的轻型cnn架构设计中利用特征重用。

2.2 Structural Re-parameterization结构重新参化

结构重参数化通常是指在训练时将更具表现力和复杂的架构转换为更简单的快速推理架构。在训练过程中,扩展[12]将模型中的线性层重新参数化为几个连续的线性层。ACNet [10]和RepVGG [11]将单个卷积层分解为一个训练时的多分支块。例如,RepVGG中的一个这样的训练时间块包含三个并行层,即3x3卷积、1x1卷积和identity mapping(恒等映射),以及一个add操作来融合它们的输出特性。在推理过程中,融合过程可以从特征空间移动到权值空间,从而产生一个简单的推理块(只有一个3x3卷积)[11]。这促使我们使用这种技术设计具有高效推理体系结构的轻量级cnn。
最近,MobileOne [41]也采用了结构重新参数化技术,删除shotcut(跳跃连接),并以大量Flops为功能强大的iPhone12中的NPU设计移动骨干。然而,在本文中,我们注意到shotcut是必要的,并且不会给非常轻的cnn带来太多的时间成本(见4.3小节)。我们利用重新参数化技术,通过替换Ghost模块中低效的concat操作来实现特征重用,这使得我们的RepGhostNet在计算受限的移动设备上效率更高。

3.方法

在本节中,我们将首先重新考虑特性重用的concat操作,并介绍如何利用结构重新参数化来实现这一点。在此基础上,我们提出了一种新的隐式特征重用的重参数化模块,即RepGhost模块。之后,我们描述了建立在这个模块上的硬件高效网络,它被记为RepGhostNet。

3.1.通过重新参数化来重用特性

特征重用已广泛应用于CNNS,以扩大网络容量,如DenseNet [24],Shuf- fleNetV2 [31]和GhostNet [14]。大多数方法利用concat操作,结合来自不同层的特征映射,以廉价地产生更多的特征。concat是没有参数和Flops的,然而,由于硬件设备上的复杂的内存复制,它的计算成本是不可忽略的。为了解决这个问题,我们提供了一个隐式实现特征重用的新视角:通过结构重新参数化来实现特征重用。
Concat 成本:如上所述,连接中的内存副本给硬件设备带来了不可忽视的计算成本。例如,让M1∈RN×C1×H×W和M2∈RN×C2×H×W作为数据布局NCHW 中的两个特征映射,以单独连接通道维度。处理M1和M2时所需的最大连续内存块分别为b1∈R1×C1×H×W和b2∈R1×C2×H×W。连接b1和b2是直接的,这个过程会重复N次。对于布局NHWC 中的数据,最大的连续内存块要小得多,即b1∈R1×1×1×C1,这使得复制过程更加复杂。而对于像元素级操作符,如Add这样的操作符,最大的连续内存块是M1和M2本身,这使得操作变得更加容易。

表1.在基于ARM的移动电话上concat和add操作不同batch size大小的运行时间【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第1张图片
为了定量地评估concat操作,我们分析了它在移动设备上的实际运行时间。我们以GhostNet 1.0x [14]为例,将其所有的concat操作替换为Add连操作进行比较,它也是一个简单的操作,以处理不同的功能与低成本的[17,36]。请注意,这两个操作在具有完全相同形状的张量上工作。表1为对应网络中所有32个相应操作符的累计运行时间。连接成本是2倍。我们还在图2中绘制了不同批次大小下的时间百分比。随着批处理大小的增加,concat和add之间的运行时百分比差距会变大,这与我们的数据布局分析一致。
重新参数化vs Concat:设y∈RN×Cout×H×W表示具有Cout通道的输出,x∈RN×Cin×H×W表示要处理和重用的输入。Φi (x),∀i = 1,……,s−1表示其他神经网络层,如卷积或BN。不失一般性,通过连接的特性重用可以表示为:
在这里插入图片描述

其中,Cat是concat操作。它只是保留现有的特征映射,并将信息处理留给其他操作。例如,一个concat层之后通常是一个1×1的密集卷积层来处理通道信息[14,24,37]。然而,如表所述。1显示,concat对于在硬件设备上的特性重用并不是免费的,这促使我们找到一种更有效的方法。
近年来,在许多[10,11,41]工作中,结构重参数化被视为一种免费的技术来提高cnn的性能。受此启发,我们注意到结构重新参数化也可以被视为一种用于隐式特征重用的有效技术,从而设计出更高硬件效率的cnn。例如,结构重参数化通常在训练过程中使用几个线性操作来产生不同的特征映射,,并通过参数融合将所有操作融合为一个,以进行快速推理。也就是说,它将融合过程从特征空间转移到权重空间,这可以被视为特征重用的一种隐式方式。遵循等式中的符号1、通过结构重新参数化实现的特征重用可以表示为:

与concat不同,add也起着特征融合的作用。所有操作Φi (x),∀i = 1,……在结构重参数化中,s−1都是线性函数,最后将融合到Φ∗(x)中。特征融合过程是在权值空间中完成的,这不会引入任何额外的推理时间,使最终的架构比具有连接的架构更有效。如图2所示,通过结构重新参数化实现特征重用可以节省7%∼11%的时间,添加5%∼8%的时间。基于这一概念,我们提出了一个通过结构重新参数化来进行特征重用的硬件高效的RepGhost模块。

图2.整个网络中每个操作的运行时百分比。Diff:concat和add之间的百分比差异。【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第2张图片

3.2. RepGhost Module

为了通过重新参数化来利用特性重用,本小节介绍了Ghost模块如何发展到我们的RepGhost模块。由于concat的存在,直接将重新参数化应用到原始的ghost模块上是不简单的。我们做了几个调整来派生我们的RepGhost模块。如图3所示,我们从图3a中的Ghost模块开始,逐步调整内部组件。

图3.从Ghost模块到RepGhost模块的演变。为了简单起见,我们省略了输入的1x1卷积,更多的结构细节请参见图4。dconv:深度卷积层(后跟BN)。Cat:连接层。a)带有ReLU的Ghost模块[14];b)用添add替换concat;c)向后移动ReLU,使模块满足结构重新参数化的规则;d)训练过程中的RepGhost模块;e)推理过程中的RepGhost模块。模块c和模块d可以在推理过程中融合到模块e中。【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第3张图片

Add操作:由于在3.1节中讨论的特征重用的concat的低效率。我们首先用add运算[17,36]替换concat运算,得到图3b中的模块b。它应该提供更高的效率,如表1和图2所示。
**向后移动ReLU:**本着结构重参数化[10,11]的精神,我们将ReLU在深度卷积层向后移动,即add操作后,如图3c中模块c所示。这种运动使模块满足结构重新参数化[10,11]的规则,因此可以融合到模块e中进行快速推理。向后移动ReLU的影响将在第二节中进行讨论。4.3.
重新参数化:作为一个重新参数化的模块,模块c在重新参数化的结构中可以比身份映射[10,41]更灵活。如图3d所示的模块d,我们简单地在identity分支中添加批归一化(BN)[25],在训练过程中带来非线性,可以融合进行快速推理。这个模块被表示为我们的RepGhost模块。我们还在Sec中探讨了其他重新参数化的结构。4.3.
快速推理:模块c和模块d作为重新参数化的模块,可以融合到图3e中的模块e中,以进行快速推理。我们的RepGhost模块有一个简单的推理结构,它只包含规则的卷积层和ReLU,使它具有硬件效率[11]。具体来说,特征融合过程是在权值空间而不是特征空间中进行的,即融合每个分支的参数,生成一个简化的结构进行快速推理,使其免费。由于每个操作具有线性,参数融合过程是直接的(详见[10,11])。
与Ghost模块比较:GhostNet [14]提出通过廉价的操作生成更多的特征图,从而可以以低成本的方式扩大网络容量。在我们的RepGhost模块中,我们进一步提出了一种更有效的方法,通过重参数化来生成和融合不同的特征图。与Ghost模块不同,RepGhost模块消除了低效的concat操作,节省了大量的推理时间。信息融合过程是通过隐式的方式执行的,而不是留给其他卷积层。
在GhostNet [14]中,Ghost模块有一个比率s来控制复杂性。根据公式1,Cin = 1/s∗Cout和其余(s-1)/s∗Cout通道是由深度卷积产生的,Φi,∀i = 1,…,s−1。而我们的RepGhost的Cout等于Cin。RepGhost模块在训练过程中产生了一个s∗Cin通道,并将其融合到Cin通道中进行推理,这不仅保留了不同特征映射的生成,而且节省了硬件设备上的推理时间。

3.3.建立bottleneck和架构

RepGhost Bottleneck:基于图4a中的Ghost bottleneck[14],我们将Ghost模块直接替换为RepGhost模块,以构建我们的RepGhost bottleneck。但是,RepGhost模块中的add操作在输出通道中与Ghost模块中的concat操作不同。

图4。与Ghost bottleneck[14]相比。S Block:跳跃连接块,DS:下采样层,SE:SE块[21]。RG-block :RepGhost bottleneck。虚线中的方块只在必要时插入。Cin、Cmid和Cout分别表示bottleneck的输入通道、中间通道和输出通道。请注意,这些被标记为红色的bottleneck,即RepGhost bottleneck不同于bottleneck内部通道中的Ghost bottleneck。【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第4张图片

e.g.,后者的50%。仅仅是改变下一层的输入通道就会严重地改变网络。为了解决这个问题,RepGhostbottleneck使输入和输出通道号与Ghostbottleneck相同。如图4b所示,与Ghostbottleneck相比,RepGhostbottleneck在通道设置上有两个变化: a)“更薄”的中间通道,以及b)第二个深度卷积层的“更厚”通道。首先,在减少通道的特征图上应用降采样和SE,使RepGhostbottleneck的[34]效率更高。其次,随着通道的增加,对特征图进行深度卷积,可以扩大网络容量[35],从而使RepGhostbottleneck更加有效。由于结构重新参数化,RepGhostbottleneck只包含2个分支(图4c):一个快捷键和一个单操作链(1×1卷积、深度卷积和ReLU),使其在内存成本和快速推理[11,31]方面效率更高。我们将在Sec中讨论走shotcut的必要性。4.3并描述移动设备上的实际运行时,以演示硬件对Ghostbottleneck的效率。
RepGhost网络:通过上面构建的RepGhostbottleneck以及它的输入和输出通道数与Ghostbottleneck相同,我们可以用我们的Gepnet[14]中的Ghostbottleneck来构建。架构细节如表2所示,RepGhostNet堆栈除输入层和输出层之外的RepGhostbottleneck。密集卷积层用16个通道来处理输入数据,用一个正常的1×1卷积和平均池化的堆栈来预测最终的输出。我们根据RepGhostbottleneck分为5组,除最后一个bottleneck外,每组的最后一个bottleneck设置stride=2。注意,我们稍微改变了组4中的中间通道,以保持该组[34]中的通道不减少。我们也应用SE块[21],并使用ReLU作为rep[21]中的非线性函数,就像[14]一样。在[14,31]之后,使用一个宽度乘数α来扩展网络,它被记为RepGhostNet α×。

表2。RepGhostNet的整体架构。#mid是指bottleneck内的中间通道。请注意,它与图4中的Cmid/2相对应。#out表示输出通道的数量。SE表示是否使用SE块。【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第5张图片

4 实验

在本节中,为了展示提出的RepGhost模块和重新幽灵网络的优越性,我们评估了ImageNet 2012分类基准[9]、MS COCO 2017目标检测和实例分割基准[29]的架构,并与其他最先进的轻型cnn进行了公平的比较。我们还评估了在使用基于arm的手机上的所有模型的延迟张量计算引擎MNN。
数据集:ImageNet [9]一直是视觉模型的标准基准。它包含1000个类,包含128M训练图像和50k验证图像。我们使用所有的训练数据,并在验证图像上评估模型。报道了单个作物的前1位和前5位的准确性。
MS COCO数据集[29]也是一个著名的视觉模型的基准。我们使用COCO 2017训练35k分割来训练我们的模型,并使用5k图像对小分割进行评估,遵循开源的mm检测[4]库中的设置。
延迟:张量计算引擎MNN [26]是一个用于深度学习的轻量级框架,并在移动设备上提供有效的推断。因此,我们使用MNN来评估在基于arm的单线程手机上的模型的延迟。如果没有说明,批处理大小默认设置为1。每个模型运行100次,延迟被记录为它们的平均值。

4.1 ImageNet分类

为了证明我们提出的rep网络的有效性和效率,我们将其与最先进的技术进行了比较轻型cnn在ImageNet基准测试上的准确性和在基于arm的手机上的实际运行时。竞争对手包括MobileNet系列[19,35]、MobileNetV2[31]、GhostNet[14]、MobileNetXt[48]、Mobileone[41]、ProxylessNAS[27]和EfficientNet[39]。训练细节如下。为了公平比较,我们还用我们的训练设置对MobileNetV3 [19]和GhostNet [14]进行了再次训练。
实施细节:我们采用了PyTorch [33]作为我们的训练框架,并使用了timm [43]库。在8个NVIDIA V100gpu上,全局批处理大小设置为1024。动量系数为0.9的标准SGD作为优化器。基准学习率为0.6,余弦退火(cosine anneals)为300个,前5个阶段升,权重衰减为1e-5。在分类器层之前的droupout率被设置为0.2。我们还使用EMA(指数移动平均)权重平均,衰减常数为0.9999。对于数据增强,除了timm [43]中的常规图像裁剪和翻转外,我们还使用了问题0.2的随机擦除。对于较大的模型,例如,×1.3×(231M),采用自动增强[6]。对于类似ResNet50的模型,我们只在[14]之后训练100个epoch。
所有模型根据FLOPs [14]分为三个层次。在基于arm的手机上对每个模型的相应延迟进行评估。图1绘制了所有模型的延迟和精度。我们可以看到,我们的RepGhostNet在精度-延迟权衡方面优于其他手动设计的和基于nas的模型。
Effective and Efficient(有效和高效):如图1和表3所示显示,我们的RepGhostNet实现了比其他最先进的轻量级CNNs相当甚至更好的精度,并具有更低的延迟,例如,0.5×比0.5×快20%,前1精度高0.5%,1.0×比0.75×快14%,前1精度高0.7%。在类似的延迟情况下,我们的RepGhostNet在所有三个级别上都大大超过了所有模型,例如,我们的0.58×超过0.5×的2.5%的前1精度,1.11×超过移动网络3大0.75×的1.6%。

【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第6张图片表3.在ImageNet上的分类结果。我们比较了RepGhostNet和最先进的轻量级cnn

【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第7张图片
表4.在COCO数据集[29]上的检测和实例分割结果。

4.2.对象检测和实例分割

为了验证我们的RepGhostNet的泛化,我们使用毫米检测[4]库进行了COCO目标检测和实例分割基准的实验。我们将RepGhostNet与任务中的其他几个骨干进行了比较。
**实施细节:**我们分别使用RetinaNet[28]和Mask RCNN [16]来进行检测任务和实例分割任务。按照[4]中的默认训练设置,我们只替换ImageNet预训练的骨干,并在8 NVIDIA V100gpu中训练12个模型。已同步的BN也已启用。本文报道了0.5:0.05:0.95的mAP@IoU。至于延迟,我们评估了基于arm的手机上单阶段模型视网膜nnet上的运行时间。我们还报告了延迟(见表3)每个骨干的参考。
结果如检测和实例分割结果如表4所示。我们的网络在这两个任务上的推理速度优于MobileNetV3 [19]和GhostNet [14]。例如,在同等的延迟下,RepGhostNet 1.3× 比GhostNet 1.1× 在相同任务上 mAP多了1%,RepGhostNet 1.5× 比MobileNetV2 1.0×在相同任务上 mAP多了2%。

4.3 消融研究

在本小节中,我们将进行实验来验证我们的架构设计。首先,我们比较了RepGhost模块和Ghost模块对大型模型ResNet50 [17]的泛化。然后对RepGhost模块的不同重参数化结构进行了测试和验证。最后,考虑到shotcut(或跳过连接),我们讨论了一个问题:轻型cnn需要shotcut吗?
与Ghost-Res50的比较:为了验证RepGhost模块的生成,我们将其与[14]中报道的Ghost-Res50进行了比较。我们用Res50中的Res50替换Ghost模块,以获得RepGhost-Res50。所有的模型都采用相同的训练设置进行训练。在手机上MNN延迟的计算值与表3相同。对于TRT延迟,我们首先将模型转换为TensorRT [40],然后在批处理大小为32的T4 GPU上在框架上运行每个模型100次,并报告平均延迟。结果如表5所示。我们可以看到,在CPU和GPU中,RepGhost-Res50都比Ghost-Res50更快,具有相当的准确性。特别是,在MNN和TensorRT推断中,RepGhost-Res50(s=2)分别比Ghost-Res50(s=4)加速了22%和44%。
**重新参数化结构:**为了验证重新参数化结构,我们在RepGhostNet0.5×上进行消融研究,通过交替使用身份映射分支(图3c中模块c)的组件,如BN、1×1深度卷积(然后是BN)和恒等映射[10,11,41]。从表6中的结果可以看,我们可以看到,使用BN重新参数化的RepGhostNet0.5×获得了最好的性能,我们将其作为所有其他RepGhost网络的默认重新参数化结构。我们将这种改进归因于BN的训练时间非线性,它提供了比身份映射更多的信息。1×1深度卷积之后也跟着BN,因此,由于以下归一化,其参数对特征没有影响,可能使BN统计不稳定,我们推测这是导致了性能不佳的原因。注意,所有的表6中的模型。可以融合到同一个有效的推理模型中,期望的是最后一行。特别地,我们在3×3的深度卷积后插入一个ReLU,比如幽灵模块,以验证向后移动ReLU是安全的,正如我们在图3c中所做的那样。此外,与MobileOne [41]相比,我们的重新参数化结构要简单得多,即在RepGhostNet中只有一个BN层。更简单的重新参数化结构使得RepGhostNet的额外训练成本可以忽略不计。
【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第8张图片
表5.与Ghost-res50的比较结果。

表6。基于RepGhostNet0.5×的RepGhost模块重新参数化结构的结果。【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第9张图片

无重新参数化:没有应用重新参数化的结构,即图3e中的模块e。ID:恒等映射。1x1dconv: 1x1深度卷积和BN。+ReLU:在深度卷积层之后插入ReLU,这使得它无法被简化为更快的推理。
**Shotcut的必要性:**删除shotcut是近年来[11,41]神经网络架构设计中关注的问题。为了验证轻量级cnn中快捷方式的必要性,我们删除了RepGhostNet中的shotcut,并在基于arm的手机上评估其延迟和在ImageNet数据集上的准确性。具体来说,我们只删除了恒等映射的shotcut,并保留了shotcut块进行降采样,以便保持模型参数和流程进行公平比较。统计上,在RepGhostNet中删除了11个恒等映射的shotcut。我们使用相同的训练设置和重新参数化结构来训练有和没有shotcut的模型。

表7.关于shotcut的消融研究结果。【论文翻译】RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization_第10张图片

表7展示了有和没有shotcut的RepGhostNet的准确性和延迟。很明显,shotcut不会严重影响实际运行时,但有助于优化过程[17]。一方面,删除shotcut的大模型与较小的模型(RepGhostNet2×)相比,精度的影响更小,这可能意味着shotcut对于轻型cnn来说比对大型模型更重要,例如,RepVGG [11]和MobileOne [41]。另一方面,shotcut增加了内存访问成本(从而影响运行时性能),这种影响对于计算约束的移动设备可以忽略不计,如表所示。7.考虑到所有这些,我们确认了shotcut对于轻型cnn是必要的,并在我们的RepGhostNet中保持shotcut。

5.结论

为了在轻量级cnn架构设计中有效地利用特征重用,本文提出了一种新的视角,通过结构重参数化技术隐式地实现特征重用,而不是广泛使用但低效的concat操作。利用该技术,提出了一种新颖的、硬件高效的隐式特征重用RepGhost模块。所提出的RepGhost模块在训练时融合了来自不同层的特征,并在推理前的权值空间中进行融合过程,从而简化了一个硬件高效的快速推理架构。在RepGhost模块的基础上,我们开发了一个名为RepGhostNet的硬件高效的轻量级cnn,它在移动设备的精度-延迟权衡方面的一些视觉任务上展示了最新的新技术。

你可能感兴趣的:(深度学习,深度学习,神经网络)