RepVGG网络

简介

论文连接:https://arxiv.org/pdf/2101.03697v1.pdf

论文代码:https://github.com/DingXiaoH/RepVGG

作者单位:清华大学(丁贵广团队), 旷视科技(孙剑等人), 港科大, 阿伯里斯特威斯大学

提出了一种简单而强大的卷积神经网络结构,其推理阶段是仅由3*3卷积和RELU组成VGG风格的结构,训练阶段则具有多分支结构。这种训练-推理的解耦是利用一种叫做“重参数化(re-parameterization)”的技术实现的,因此,该网络被称为RepVGG。在ImageNet上能够达到超过80%的top-1准确率,这是直通式网络第一次达到如此高的性能。在 NVIDIA 1080Ti GPU上,RepVGG比ResNet-50快83%,比ResNet-101快101%,同时具有更高的精度。相比当前的SOTA模型,如EfficientNet、ResNet,RepVGG可以实现精度-速度之间的平衡。

VGG是一种简单的plain网络,没有复杂结构,只需要堆叠CNN层、RELU层即可达到较高的性能。后来的网络,如Inception、ResNet、DenseNet等设计的越来越复杂,虽然网络性能提高了,但缺点也很明显:

  • 复杂的分支设计(如ResNet和Inception)使其难以应用和自定义,降低了推理的速度并且内存占用率较高
  • 一些组件(如Xception和MobileNets中的depthwise卷积、ShuffleNets中的通道shuffle模块)增加了内存访问成本且缺乏适用的硬件;

此外,FLOPS并不能代表运行速度,尽管某些模型FLOPS很低,但其速度并不快(PS:特别是EfficientNets等使用了depthwise卷积的网络)。

复杂分支的设计有利于训练过程,而其缺点又是对推理过程不利的。

因此,作者提出了RepVGG,对训练-推理阶段的网络进行解耦,训练时多分支、推理时plain。其主要有以下优点:

  • 模型具有VGG风格的plain(又称前馈)网络结构,没有任何分支,也即:每一层只取其前一层的输出作为输入,而该层输出只作为下一层的输入;
  • 模型的主体只用3*3卷积和RELU

为什么使用3x3卷积)在GPU上3x3卷积被封装优化,计算密度对比其他卷积高
在单一模型和多分支模型上,显然是多分支模型在训练上的效果更好并且预测结果更精确,因此作者设计网络时并没有抛弃多分支结构,而是在推理时将其融合成单一路径。

在这里插入图片描述

RepVGG的优点

  1. Fast,使用重参数化后,在推理上速度会有非常大的提升,并且有助于模型部署提高实用性。
  2. 节省内存,采用多分支模型,在每次计算都需要多份内存分别保存每条分支的结果,所以导致内存消耗大
    在这里插入图片描述

结构重参数化实现过程

在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值