[重读经典论文]RepVGG: Making VGG-style ConvNets Great Again
1. 参考
博客:RepVGG网络简介
2. 主要内容
2.1.与其他网络对比
如下图所示,RepVGG无论是在精度还是速度上都已经超过了ResNet、EffcientNet以及ReNeXt等网络。
2.2. 创新点,结构重参数化
在训练时,使用一个类似ResNet-style的多分支模型,而推理时转化成VGG-style的单路模型,如下图所示,图(B)表示RepVGG训练时所采用的网络结构,而在推理时采用图(C)的网络结构。
2.3. 训练为何用多分支
类似Inception系列、ResNet以及DenseNet等模型,我们能够发现这些模型都并行了多个分支。至少根据现有的一些经验来看,并行多个分支一般能够增加模型的表征能力,如下图所示通过是否选择1*1分支和恒定映射分支的消融实验,可以得出多分支可以提高模型性能的结论。
2.4. 推理为什么用单路
- 更快:考虑到硬件计算的并行程度和内存访问成本,多分支模型在推理时需要分别计算每个分支的结果(快的还要等慢的),导致硬件算力利用率低且并行度不高,并且频繁的内存访问和写入会浪费大量时间。
- 省内存:如图下图(A)所示的Residual模块,假设卷积层不改变channel的数量,那么在主分支和shortcut分支上都要保存各自的特征图或者称Activation,那么在add操作前占用的内存大概是输入Activation的两倍,而图(B)的Plain结构占用内存始终不变。
- 更灵活:对于多分支的模型,结构限制较多剪枝很麻烦,而对于Plain结构的模型就相对灵活很多,剪枝也更加方便。
(完)
本文版权归作者(https://www.cnblogs.com/harrymore/)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,如有问题, 可邮件(harrymore@126.com)咨询.