模型压缩——重参数化

本文介绍了重参数化技术在深度学习模型压缩中的应用,通过RepVGG、ACNet和DBB等方法减少计算量和参数数量。重参数化允许在训练时使用复杂的多分支网络,而在测试时合并为单一路径,提高运行速度。文章详细探讨了不同重参数化策略,如1x1 Conv与KxK Conv的融合、串联与并联融合,以及在ResNet和MobileNetV2结构中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


模型压缩主要的方法有:重参数化、剪枝、量化等,本章主要讲重参数化
在解决恒等映射时对卷积核插值或者重新生成一个卷积核时有些会直接使用Dirac初始化增加的权重。
Dirac初始化看这里:https://www.e-learn.cn/topic/1523429

重参数化

重参数化有并行合并和串行合并(主要是为了合并模块成一个卷积),要想合成只有一条,那要先串行再并行,而且串行合并的那一块不能有ReLU,sigmoid、tanh这种公式只有一种的可以,ReLU为在x>0和x<0的公式不同所以不行。
优点:训练时采用多分支的网络使模型获取更好的特征表达,测试时将并行融合成串行,从而降低计算量和参数量,提升速度(融合后理论上和融合前识别效果一样,实际基本都是稍微降低一点点)

RepVGG 和ACNe的重参数化方法

ACNet

在add中: w 1 ⋅ x + w 2 ⋅ x = ( w 1 + w 2 ) ⋅ x w1\cdot x+w_2\cdot x=(w_1+w_2)\cdot x w1x+w2x=(w1+w2)x
在这里插入图片描述
在这里,1x3 Conv等于第二行和第三行权值为0的3x3 Conv,3x1 Conv等于第二列和第三列权值为0的3x3 Conv。
那么,此时图中的3个尺寸不同Conv就可以等价于3个尺寸都相同的卷积了,也就可以应用上面add的公式了。
实际上Conv后会后BN,BN和Conv的融合看底下的RepVGG

RepVGG

RepVGG和ACNet很像,主要概念的在训练的时候采用原来多分支的复杂网络,在测试的使用将多分支合并成一条支路进行测试,不再训练,从而提升速度。(并行和并,对支路是有限制的,如下图这样的支路,每一条支路可以先合并成一个卷积,然后再支路合并)
在这里插入图片描述
在这里插入图片描述
RepVGG的重参数化过程:

  1. 将所有的Conv和BN合并,参数融合公式: w i , : , : , : ′ = γ i σ i w i , : , : , : , b i ′ = − μ i γ i σ i + β i w_{i,:,:,:}'=\frac{\gamma_i}{\sigma_i}w_{i,:,:,:},b_i'=-\frac{\mu_i\gamma_i}{\sigma_i}+\beta_i wi,:,:,:=σiγiwi,:,:,:,bi=σiμiγi+βi,其中 w i w_i wi
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值