小凡 · 2021年01月29日

清华&旷视:RepVGG,更佳的速度-精度trade-off!

转载自:计算机视觉工坊
编辑:夏初

文章题目:RepVGG:Make VGG-style ConvNets outstanding again

代码地址:在公众号「计算机视觉工坊」,后台回复「RepVGG」,即可直接下载。

摘要:

本文提出一种简单而强有力的CNN架构RepVGG,在推理阶段,它具有与VGG类似的架构,而在训练阶段,它则具有多分支架构体系,这种训练-推理解耦的架构设计被称为“重参数化”。

研究现状:

尽管许多复杂的ConvNet都比简单的ConvNet提供更高的准确性,但缺点很明显。1)复杂的多分支设计(例如ResNet中的残差加法和Inception中的分支级联)使模型难以实现和定制,减慢了推理速度并降低了内存利用率。2)一些组件增加了内存访问成本,并且缺乏对各种设备的支持。此外,还有影响的因素,浮点运算(FLOP)的数量不能准确反映实际速度。因此,VGG和ResNets的原始版本仍然在学术界和工业界广泛用于现实世界的应用程序。

研究贡献:

基于上述研究现状,本文的研究人员提出了一种简单有强有的CNN架构RepVGG,相比其他架构,具有更佳的精度-速度均衡;对plain架构采用重参数化技术;并在图像分类、语义分割等任务上验证了RepVGG的有效性。

研究细节:

1. 选择ConvNet的原因:

快速:相比VGG,现有的多分支架构理论上具有更低的计算速度,但推理速度并未更快。计算速度与推理速度的矛盾主要源自两个关键因素:(1)内存访问消耗,比如多分支结构的运算很小,但内存访问消耗很高;(2)并行度,并行度高的模型要比并行度低的模型推理速度更快。

节省内存:多分支结构是一种内存低效的架构,这是因为每个分支的结构都需要在运算之前保存,这会导致更大的峰值内存占用;而plain模型则具有更好的内存高效特征。

灵活:多分支结构会限制CNN的灵活性,与此同时,多分支结构对于模型剪枝不够友好。

image.png

2. 训练中的多分支架构体系

Palin模型存在性能差的缺点。本文设计的RepVGG,其ResNet的ResBlock构建了一个短连接模型信息流,当的维度不匹配时,则转变为。尽管多分支结构对于推理不友好,但适合于训练,研究人员将RepVGG设计为训练时多分支,推理时单分支结构。研究人员设计了如下形式模块:

其中,分别对应,卷积。在训练阶段,通过简单的堆叠上述模块构建CNN架构;而在推理阶段,上述模块可以轻易转换为形式,且的参数可以通过线性组合方式从已训练好的模型中转换得到。

3. Plain架构的重新参数化

研究中将已训练模块转换成单一的卷积用于推理。下图给出了参数转换示意图。

640 (51).png

image.png

模块中仅具有一个卷积核,两个1卷积核以及三个bias参数,三个bias参数相加即可合并为一个bias,卷积核是通过将卷积核参数与卷积核的中心点相加获取的。

4. RepVGG网络设计

RepVGG是一种类VGG的架构,文中对于每个阶段的层数按照如下规则进行相应的设计。研究人员遵循三个简单的准则来决定每个阶段的层数。1)第一阶段以高分辨率运行,很耗时,因此仅使用一层来降低延迟。2)最后一级应具有更多通道,因此仅使用一层来保存参数。3)紧随ResNet及其最新版本之后,研究人员将最多的层放到倒数第二级(在ImageNet上具有的输出分辨率),设置五个阶段分别具有1、2、4、14、1层,以构造一个名为RepVGG-A的实例。此外还构建了更深的RepVGG-B,在stage2、3和4中又增加了2层。使用RepVGG-A与其他轻型和中等重量型号竞争,包括ResNet-18 / 34/50,而RepVGG-B与高性能机型竞争

基于上述规则,RepVGG-A中的层数对应为1,2,4,14,1;RepVGG-B中的层数对应为1,4,6,16,1,下图为两者的对比。

image.png
5. 实验:

实验中,研究人员将RepVGG的性能与ImageNet上的基线进行比较,通过一系列消融研究和比较证明结构重新参数化的重要性,并验证RepVGG在语义分割上的泛化性能

本文主要是在ImageNet图像分类任务上进行了实验,实验结果如下图所示,主要反映了RepVGG和不同计算量的ResNe和变体在精度、速度、参数量上的对比,从中不难发现,RepVGG具有更好的精度-速度均衡。在ImageNet数据集上,RepVGG取得了超过80%的top-1精度,这是plain模型首次达到如此高的精度。在NVIDIA 1080TiGPU上,RepVGG比ResNet50快83%,比ResNet101快101%,同时具有更高的精度。

640 (53).png
与此同时,RepVGG在参数量和推理速度上也具有较好的性能。
image.png

image.png

不足:RepVGG模型是快速,简单和实用的ConvNet架构,在GPU和专用硬件上以最快的速度运行,而无需考虑参数等。尽管RepVGG模型的参数效率比ResNets高,但在低功耗设备应用上,它们可能不如MobileNets和ShuffleNets等移动系统模型。

总结:本文提出了RepVGG,一个简单的体系结构,适用于GPU和专用推理芯片。研究人员通过结构重新参数化方法,使其在ImageNet上可以达到80%的top-1精度,并且与最新的复杂模型相比,它显示出良好的速度-精度性能。

推荐阅读

推荐阅读
关注数
1105
内容数
100
专注于3D视觉,Vslam,图像处理等,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息