RepVGG:VGG,永远的神! 2021新文
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RepVGG:VGG,永远的神! 2021新文相关的知识,希望对你有一定的参考价值。
参考技术A论文: RepVGG: Making VGG-style ConvNets Great Again
目前,卷积网络的研究主要集中在结构的设计。复杂的结构尽管能带来更高的准确率,但也会带来推理速度的减慢。影响推理速度的因素有很多,计算量FLOPs往往不能准确地代表模型的实际速度,计算量较低的模型不一定计算更快。因此,VGG和ResNet依然在很多应用中得到重用。
基于上述背景,论文提出了VGG风格的单分支网络结构RepVGG,能够比结构复杂的多分支网络更优秀,主要包含以下特点:
当然,想要直接训练简单的单分支网络来达到与多分支网络一样的精度是很难的。由于多分支网络中的各个分支在训练时的权重变化不定,所以多分支网络可看作是大量简单网络的合集,而且其能够避免训练时的梯度弥散问题。虽然如此,但多分支网络会损害速度,所以论文打算训练时采用多分支网络,而推理时仍然使用单分支网络,通过新颖的结构性重参数化(structural re-parameterization)将多分支网络的权值转移到简单网络中。
由于多分支的存在,使得多分支网络相当于一个包含大量小网络的集合,但其推理速度会有较大影响,所以论文仅在训练时使用多分支进行训练,训练完成后将其权值转移到简单网络中。为了够包含大量更简单的模型,论文在 卷积的基础上添加ResNet-like的identity分支和 分支构成building block,然后堆叠成训练模型。假设多分支网络包含 个building block,则其可以表达 种简单网络结构。
在开始描述最重要的权值转换之前,先进行以下定义:
假设 、 以及 ,则有:
若输入输出维度不相同,则去掉identity分支,即只包含前面两项。 代表是推理时的BN函数,一般而言,对于 ,有:
权值转换的核心是将BN和其前面的卷积层转换成单个包含偏置向量的卷积层。假设 为从 转换得到的核权值和偏置,则有:
转换后的卷积操作与原本的卷积+BN操作是等价的,即:
上述的转换也可应用于identity分支,将identity mapping视作卷积核为单位矩阵的 卷积。
以上图为例,在 的情况下,将3个分支分别转换后得到1个 卷积和两个 卷积,最终的卷积偏置由3个卷积的偏置直接相加,而最终的卷积核则是将两个 卷积核加到 卷积核中心。需要注意的是,为了达到转换的目的,训练时的 卷积分支和 卷积分支需要有相同的步长,而 卷积的填充要比 卷积的小一个像素。
RepVGG是VGG风格的网络,主要依赖 卷积,但没有使用最大池化,而是使用步长为2的 卷积作为替换。RepVGG共包含5个阶段,每个阶段的首个卷积的步长为2。对于分类任务,使用最大池化和全连接层作为head,而其它任务则使用对应的head。
每个阶段的层数的设计如上表所示,除首尾两个阶段使用单层外,每个阶段的层数逐渐增加。而每个阶段的宽度则通过缩放因子 和 进行调整,通常 ,保证最后一个阶段能够提取更丰富的特征。为了避免第一阶段采用过大的卷积,进行了 的设置。
为了进一步压缩参数,论文直接在特定的层加入分组卷积,从而达到速度和准确率之间的trade-off,比如RepVGG-A的3rd, 5th, 7th, ..., 21st层以及RepVGG-B的23rd, 25th和27th层。需要注意,这里没有对连续的层使用分组卷积,主要为了保证通道间的信息交流。
SOTA分类在120epoch训练的性能对比。
200epoch带数据增强的分类性能对比。
对比多分支效果。
其它操作与结构重参数化的对比实验。
作为分割任务的主干网络的表现。
RepVGG将训练推理网络结构进行独立设计,在训练时使用高精度的多分支网络学习权值,在推理时使用低延迟的单分支网络,然后通过结构重参数化将多分支网络的权值转移到单分支网络。RepVGG性能达到了SOTA,思路简单新颖,相信可以在上面做更多的工作来获得更好的性能。
413永远的神——冲刺总结
这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-science-class2-2018/homework/12065 |
这个作业的目标 | 冲刺总结 |
小组的组号和队名 | 413永远的神 |
小组的队长姓名 | 彭星文 |
凡事预则立、测试博客的链接
https://www.cnblogs.com/4413ptlh/p/14833822.html
冲刺博客集合
日志名称 | 具体工作( 当天完成的工作量) |
---|---|
冲刺随笔1 | 查阅各种要用到的技术资料,完成组内分工 |
冲刺随笔2 | 登录注册模块的编写 |
冲刺随笔3 | 数据库的设计和建立,以及一些页面编写) |
冲刺随笔4 | 进行基础页面的设计 ) |
冲刺随笔5 | 数据库交互以及解决之前的一些bug |
冲刺随笔6 | 将界面美化,解决数据库的一些数据库更新问题 |
冲刺随笔7 | 完成收尾工作,测试各个界面 |
描述项目预期计划
未来18天内:完成整个项目的开发工作;
未来22天内:完成程序测试,bug测试以及着手编写用户手册,准备发布项目;
未来30天内:准备项目发布集体会议;
项目的现实进展
微信小程序主界面开发完成,还缺少一些关键性功能模块。
每位成员的过程体会
彭星文(组长):这次项目的制作过程还是要感谢每一位成员的努力,正是因为有了他们的努力去实现项目的功能板块,所以才会实现出来这个项目。
唐志明:这次项目的制作还是让我感受颇多的,在写项目的过程中遇到了许多问题,尤其是运行环境不行,需要自己从网上找方法去配置运行环境,不过从写代码的过程中还是学到了很多。
黄杰:通过这次项目的实现,让我学到了很多,尤其是用了新软件来编写程序,很多以前的代码不适合用在这里,所以还是花了一定的功夫去学习和实现的。
罗璇哲:这次项目的制作还是花了很大的精力和时间去完善的。
组员的分工及在整个阶段的工作量比例
成员 | 分工 | 工作量比列 |
---|---|---|
彭星文(组长) | 整体项目开发,参与开发模型 | 25% |
唐志明 | 搜集文献,模型设计,参与开发模型 | 25% |
黄杰 | 微信小程序主界面开发,参与开发模型 | 25% |
罗璇哲 | 查阅资料,参与数据库开发 | 25% |
附带代码仓库地址、测试文档链接地址、PPT链接地址
https://gitee.com/lyflxzlove/codeershou
以上是关于RepVGG:VGG,永远的神! 2021新文的主要内容,如果未能解决你的问题,请参考以下文章