论文阅读——《RepVGG: Making VGG-style ConvNets Great Again》

1. Motivation

  • 复杂卷积精度高但是缺点显著:
    • 复杂的多分支设计(如ResNet中的残差连接和Inception中的分支连接)使得模型难以实现和定制,降低了推理和内存利用率。
    • 一些组件(如Xception和MobileNets中的深度转换和ShuffleNets中的信道shuffle)增加了内存访问成本,并且缺乏各种设备的支持。

2. Contribution

  • 提出了一种简单但功能强大的卷积神经网络结构:ReVGG(没有任何分支,只使用3 × 3 conv和ReLU。)

  • 通过结构重新参数化来解耦训练时的多分支和推理时的平面体系结构,从而就能避免在训练时出现梯度消失的问题。
    在这里插入图片描述

  • 在ImageNet上,RepVGG达到80%以上的top-1精度。

  • 在NVIDIA 1080Ti GPU上,RepVGG模型的运行速度比ResNet-50快83%,比ResNet-101快101%,并且具有更高的精度,与最先进的模型如EfficientNet和RegNet相比,显示了良好的精度-速度权衡。

3.Method

3.1 Simple is Fast, Memory-economical, Flexible

simple:两个重要的因素对速度有相当大的影响,但没有被FLOPs考虑:内存访问成本(MAC)和并行度。
Memory-economical:多分支拓扑是内存效率低的,因为每个分支的结果都需要保存到添加或连接时,这会显著提高内存占用的峰值。如果reidual块保持特征图的大小,那么特征图占用的额外内存的峰值将是输入的2倍。
在这里插入图片描述
Flexible:多分支拓扑对体系结构规范施加了约束,且限制了通道修剪(channel pruning)

3.2 Training-time Multi-branch Architecture

借鉴ResNet思想:
y = x + f ( x ) y = x + f(x) y=x+f(x)
使用一个只在训练时期才有的多分支模型结构:
y = x + g ( x ) + f ( x ) y = x + g(x)+ f(x) y=x+g(x)+f(x)
其中 g ( x ) g(x) g(x) 1 × 1 1 \times 1 1×1 conv
在这里插入图片描述

3.3 Re-param for Plain Inference-time Model

如何将一个训练好的block转换为一个单独的3 × 3 conv层进行推理。
在这里插入图片描述
在这里插入图片描述

  • M ( 2 ) M^{(2)} M(2):output; M ( 1 ) M^{(1)} M(1):input
  • W ( 3 ) ∈ R C 2 × C 3 × 3 × 3 W^{(3)} \in R^{C_2 \times C_3 \times 3 \times 3} W(3)RC2×C3×3×3 3 × 3 3 \times 3 3×3 conv, C1 input channel,C2 output channel。 W ( 1 ) ∈ R C 2 × C 1 W^{(1)} \in R^{C_2 \times C_1} W(1)RC2×C1同理,只是 1 × 1 1 \times 1 1×1 conv
  • μ(3), σ(3), γ(3), β(3):3 × 3卷积后BN层的标准偏差和学习到的比例因子和偏差
  • μ(1), σ(1), γ(1), β(1):1 × 1分支
  • μ(0), σ(0), γ(0), β(0):单位分支

首先将每一个BN及其前一卷积层转换为带有偏置向量的卷积。如图所示,红色框中执行33的conv+BN层融合。蓝色框和绿色框同理。
在这里插入图片描述
融合后的卷积以及偏置因子:
在这里插入图片描述
然后将融合后的卷积层转换为Conv3
3,比如Conv1 * 1分支,整个转换过程就是利用3*3的卷积核替换1 * 1的卷积核,即将1 * 1卷积核中的数值移动到3 * 3卷积核的中心点即可;对于Identity分支而言,该分支并没有改变输入的特征映射的数值,那么我们可以设置一个3 * 3的卷积核,将所有的9个位置处的权重值都设置为1,那么它与输入的特征映射相乘之后,保持了原来的数值。

最后合并残差分支中的Conv 3 * 3。即将所有分支的权重W和偏置B叠加起来,从而获得一个融合之后的Conv3 * 3网络层。

4. Experiments

4.1 RepVGG for ImageNet Classification

RepVGG网络与ResNet网络在相同测试数据集(ImageNet)上面的性能指标。评估的性能指标包括Top-1准确率、模型推理速度、模型参数量、FLOPS和Wino卷积的MUL个数。
在这里插入图片描述

4.2 Structural Re-parameterization is the Key

下表展示了结构重参化技术的重要性,所有的模型都使用上面描述的相同的简单训练设置从头开始训练120个epoch。
在这里插入图片描述
去除这两个分支后,训练时间模型退化为普通模型,准确率仅为72.39%。1 × 1正确率为73.15%,同一性正确率为74.79%。全功能RepVGGB0模型的准确率为75.14%,比普通模型高出2.75%。

4.3 Semantic Segmentation

imagenet pretraining RepVGG在城市景观语义分割中的泛化性能如下表所示:
在这里插入图片描述
在验证子集上测试Cityscapes[4]上的语义分割。RepVGG骨干在平均IoU上分别比ResNet-50和ResNet-101性能高1.71%和1.01%,在mIoU上RepVGG- b1g2 -fast比ResNet-101骨干性能高0.37,运行速度快62%。

5. Conclusion

RepVGG很好的做到速度-精度上的平衡,可以较好的满足移动端图像处理的需求。但是相较于MobileNet以及ShuffleNets,这种移动端的管理模式更加受欢迎。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值