EfficientRep An Efficient Repvgg-style ConvNets with Hardware-aware Neural Network Design

EfficientRep: An Efficient Repvgg-style ConvNets with Hardware-aware Neural Network Design

摘要:

我们提出了一种硬件高效的卷积神经网络架构,它具有类似repvgg的架构。Flops或参数是评估网络效率的传统指标,对包括计算能力和内存带宽在内的硬件不敏感。

因此,如何设计一个有效利用硬件计算能力和内存带宽的神经网络是一个关键问题。提出了一种硬件感知神经网络的设计方法。在此基础上,我们设计了具有高计算量硬件(如计算机硬件)的EfficientRep系列卷积网络。图形处理器友好,应用于YOLOv6对象检测框架。YOLOv6已经发布了YOLOv6N/YOLOv6S/YOLOv6M/YOLOv6L型号的v1和v2版本。我们的YOLOv6代码可在https://github.com/meituan/YOLOv6上获得。

介绍

自VGG在图像分类任务中取得成功以来,卷积神经网络的设计受到了学术界和业界的广泛关注。目前,已经提出了大量的经典网络,如Inception[1]和Resnet[2]。这些精心设计的架构使得图像分类的准确率越来越高。除了人工设计,最近神经结构搜索也自动设计了几个有代表性的网络,如Nasnet[3]和AmoebaNet[4]。尽管复杂网络为图像分类、目标检测和分割等视觉任务带来了成功,但这些网络在部署的硬件上可能无法获得合适的精度和速度平衡。

深度学习网络的硬件效率设计和部署一直是研究的重点。传统的推理效率评估指标是浮点运算(FLOPs)和参数计数。但是,这些指标不能表示与硬件的关系,例如内存访问成本和I/O吞吐量。图3显示了计算能力与内存资源的关系。因此,一个重要的问题提出了我们:如何设计一个硬件友好的网络来执行更好的精度-速度平衡?

为了解决这一问题,我们探索了一些具有竞争力的新颖架构,并应用于YOLOv6对象检测框架。RepVGG[7]是一种基于winograd算法在GPU或CPU上高度优化的具有3x3卷积核的新型网络。单路径模型可以在GPU等设备上快速训练和推断。图4所示rep conv在训练状态和推理状态之间的转换。在训练状态下,由于增加了1x1的conv和恒等式,rep conv可以保证训练时的准确性。在推理状态下,重新参数化结构可以等价地转换为推理状态。
在这里插入图片描述
在YOLOv6-1.0中,基于基本的rep conv,我们设计了纯regvgg风格的架构,命名为EfficientRep骨干和rep - pan颈部,以有效地利用GPU的计算资源。在YOLOv6-2.0中,为了平衡计算和内存资源,我们探索了一种新的结构,即Bep(啤酒杯)单元和BepC3(或称为CSPStackRep)块。与rep conv相比,我们发现Bep单元在某些状态下是一种更有效的基本神经网络单元。尽管RepVGG提出rep-style多分支训练可以达到与resnet等原始多分支训练相当的性能,但我们发现rep-style网络的精度-速度权衡在大规模下降,这将在第三节中展示。因此,我们设计了应用于YOLOv6-2.0的CSPBep骨干和CSPRepPAN颈部,采用Bep单元和BepC3块的上述结构。

基于以上考虑,我们将混合策略应用到YOLOv6中,在小尺寸时选择单分支模型,在大尺寸时选择多分支模型。图1和图2描述了与其他目标探测器相比的精度-速度权衡。
在这里插入图片描述
在这里插入图片描述

A.神经网络设计

VGG[8]网络实现了ImageNet Classification的top-1准确率,达到70%以上,许多相关的创新被提出,如GoogLeNet[9]和Inception[1]网络采用多分支架构设计。ResNet[2]是一种具有代表性的双分支网络,广泛应用于工业领域。在repvgg[7]提出之前,单路径网络在一些设备上表现出了较高的效率。

B.神经结构搜索

神经结构搜索(NAS)是一种相对于人工设计的网络自动设计技术。通过人工设计空间设计,NAS可以自动生成大量的网络,但占用大量的资源。目前,为了节省计算资源,提出了低成本的神经网络搜索,如One-For-All[10]等。

C.硬件感知神经网络设计

最近,一些新颖的网络如MobileOne[5]和TRT-VIT[6]被提出。这些网络是人工设计的,考虑了设备上的性能。除了精度或参数的度量外,还同时考虑了推理速度,称为硬件感知神经网络设计。

我们的贡献总结如下

  • 我们提出了Bep单元、Repblock和BepC3块的新结构。

  • 我们提出了一种新的网络,即EfficientRep, Rep-PAN, CspBep和CSPRepPAN。

  • 我们提出了具有计算能力和内存带宽平衡的新颖网络设计,针对不同大小的模型提供了不同的策略。

方法

在本节中,我们将详细介绍YOLOv6中应用的硬件感知神经网络设计。我们提出的新结构和网络将以不同规模模型的混合策略呈现。

A.纯粹的repvgg式高效设计

repvgg风格的[7]conv具有3x3 conv + ReLU的结构,可以有效地利用硬件计算。在训练状态下,repvgg风格的conv由3x3分支、1x1分支和identity组成(图4)。通过重新参数化,将多分支结构转化为推理状态下的单分支3x3 conv。如图5和图6所示,我们设计了一种gpu友好的repvgg风格网络,称为EfficientRep骨干和Rep-PAN颈部,并应用于YOLOv6检测框架(YOLOv6-v1)
在这里插入图片描述
在这里插入图片描述

但是,当YOLOv6-v1增长到中等大小时,推理速度下降过快,与csp风格的yolo系列相比,精度没有竞争力。如表一所示,纯repvggstyle YOLOv6m无法实现类似的精度-速度权衡。因此,我们探索了新的结构,如多路径的大尺寸模型。
在这里插入图片描述

B.多路径高效设计

为了解决纯repvgg型网络不能达到预期的精度-速度平衡的问题,提出了一种新的Bep单元结构。Bep单元的细节如图7所示,rep convs的个数通过额外的快捷方式线性连接。利用Bep单元,我们设计了一个新颖的主干和颈部,分别命名为CSPBep和CSPRepPAN。我们将上述结构应用于YOLOv6-v2中,实现了更好的精度-速度平衡。
在这里插入图片描述

csp式[20]是YOLOseries框架中广泛应用的高效设计,如YOLOv5 [16], PPYOLOE[17]等。csp式结构采用跨阶段局部网络,在减少计算量的同时实现了更丰富的梯度组合。我们将Bep单元与csp式结构相结合,设计了一种新的BepC3块结构,以平衡精度和推理速度。BepC3的设计如图8所示,它由CSPstyle结构和Bep单元的Repblock组成。如表1所示,BepC3块的改进达到了预期的精度和速度平衡。
在这里插入图片描述

在BepC3模块的基础上,分别设计了CSPBep主干和CSPRepPAN颈部,最终得到YOLOv6v2模型。对于yolo系列的csp型网络,部分比值默认为1/2。在YOLOv6-v2的设计中,我们对YOLOv6m采用了2/3的偏比例,对YOLOv6l采用了1/2的偏比例,以获得更好的性能

C.规模战略

在YOLOv5之后,我们使用深度乘数和宽度乘数的缩放策略来生成各种大小的模型。在YOLOv6-v1和YOLOv6-v2中,基本骨干的深度设置都是[1,6,12,18,6]。此外,宽度设置为[64,128,256,512,1024]。基本颈部的深度设置为[12,12,12,12,12],宽度设置为[256,128,128,256,256,512]。表II显示了YOLOv6中应用的特定深度乘数和宽度乘数。
在这里插入图片描述

实验结果

在本节中,我们将展示实验结果和细节。对于目标检测,实验在MS COCO2017训练集上进行训练,该训练集包含80个类和118k张图像。我们在MS COCO-2017验证集上使用标准COCO AP度量,包含5000张图像。

A.物体检测实验细节

对于我们在YOLOv6中应用的网络设计,我们在COCO train2017上训练模型共300个epoch,其中3个epoch热身。我们的训练策略是随机梯度下降(SGD)训练和初始lr为0.01的余弦lr调度器。在我们的设置中,权重衰减为5e-4。对于8-GPU设备,批大小默认为256。我们还在训练过程中采用了马赛克和Mixup数据增强和指数移动平均(EMA)

B.与其他目标探测器的比较

为了展示我们的网络设计的效果,表III显示了YOLOv6模型在MS-COCO测试分割上与其他最先进的物体探测器相比的性能。YOLOv6N/S/M/L模型经过优化和其他改进,实现了更好的精度-速度平衡。我们在NVIDIA Tesla T4 GPU上使用TensorRT版本7.2评估推理速度,具有FP16精度。

结论

在本报告中,我们介绍了应用于YOLOv6的神经网络的优化。我们设计了Bep单元、BepC3block/Repblock、EfficientRep/CspBep主干和RepPAN/CSPRepPAN颈部。结合其他改进,我们实现了比其他目标检测器更好的YOLOv6-N/S/M/L模型。同时,我们提出了一种应用于不同尺寸模型的混合网络设计策略,旨在实现更好的精度-速度平衡。此外,我们提出了一种计算和内存平衡的硬件神经网络设计,并将其应用于YOLOv6框架开发中。我们希望以上建议能为开发者和研究者提供启示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值