未验证 提交 30fee0f9 编写于 作者: L littletomatodonkey 提交者: GitHub

Update faq_2021_s1.md

上级 1b89b8a5
......@@ -79,7 +79,7 @@
### Q3.1: 双(多)分支结构与Plain结构,各自有什么特点?
**A**
以VGG为代表的Plain网络,发展到以ResNet系列(带有残差模块)、InceptionNet系列(多卷积核并行)为代表的的多分支网络结构,人们发现多分支结构在模型训练阶段更为友好,更大的网络宽度可以带来更强的特征拟合能力,而残差结构则可以避免深度网络梯度消失的问题,但是在推理阶段,带有多分支结构的模型在速度上并无优势,即使多分支结构模型的FLOPs要更低,但多分支结构的模型计算密度也更低。例如VGG16模型的FLOPs远远大于EfficientNetB3,但是VGG16模型的推理速度却显著快于EfficientNetB3,因此多分支结构在模型训练阶段更为友好,而Plain结构模型则更适合于推理阶段,那么以此为出发点,可以在训练阶段使用多分支网络结构,以更大的训练时间成本换取特征拟合能力更强的模型,而在推理阶段,将多分支结构转为Plain结构,从而换取更短的推理时间。实现多分支结构到Plain结构的转换,可以通过结构重参数化(structural re-parameterization)技术实现。
以VGG为代表的Plain网络,发展到以ResNet系列(带有残差模块)、Inception系列(多卷积核并行)为代表的的多分支网络结构,人们发现多分支结构在模型训练阶段更为友好,更大的网络宽度可以带来更强的特征拟合能力,而残差结构则可以避免深度网络梯度消失的问题,但是在推理阶段,带有多分支结构的模型在速度上并无优势,即使多分支结构模型的FLOPs要更低,但多分支结构的模型计算密度也更低。例如VGG16模型的FLOPs远远大于EfficientNetB3,但是VGG16模型的推理速度却显著快于EfficientNetB3,因此多分支结构在模型训练阶段更为友好,而Plain结构模型则更适合于推理阶段,那么以此为出发点,可以在训练阶段使用多分支网络结构,以更大的训练时间成本换取特征拟合能力更强的模型,而在推理阶段,将多分支结构转为Plain结构,从而换取更短的推理时间。实现多分支结构到Plain结构的转换,可以通过结构重参数化(structural re-parameterization)技术实现。
另外,Plain结构对于剪枝操作也更为友好。
......@@ -133,7 +133,7 @@ ACNet意为“Asymmetric Convolution Block”,即为非对称卷积模块,
<img src="../../images/faq/ACNetReParams.png" width="400">
</div>
观察上图,以其中的`conv2`为例,该非对称卷积可以视为`3*3`的方形卷积核,只不过该方形卷积核的上下六个参数为`0``conv3`同理。并且,`conv1``conv2``conv3`的结果相加,等同于三个卷积核相加再做卷积,以`Conv`表示卷积操作,`+`表示矩阵的加法操作,则:`Conv1(A)+Conv2(A)+Conv3(A) == Convk(A)`,其中`Convk1``Conv2``Conv3`的卷积核分别为`Kernel1``kernel2``kernel3`,而`Convk`的卷积核为`Kernel1 + kernel2 + kernel3`
观察上图,以其中的`conv2`为例,该非对称卷积可以视为`3*3`的方形卷积核,只不过该方形卷积核的上下六个参数为`0``conv3`同理。并且,`conv1``conv2``conv3`的结果相加,等同于三个卷积核相加再做卷积,以`Conv`表示卷积操作,`+`表示矩阵的加法操作,则:`Conv1(A)+Conv2(A)+Conv3(A) == Convk(A)`,其中`Conv1``Conv2``Conv3`的卷积核分别为`Kernel1``kernel2``kernel3`,而`Convk`的卷积核为`Kernel1 + kernel2 + kernel3`
RepVGG网络与ACNet同理,只不过ACNet的`1*d`非对称卷积变成了`1*1`卷积,`1*1`卷积相加的位置变成了`3*3`卷积的中心。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册