重训练量化(改进QAT)

本文探讨了在深度学习模型压缩中,如何改进Quantize Aware Training(QAT)。通过Alpha-Blending(AB)、QuantNoise和全精度辅助模块等方法,减少对Straight-Through Estimator(STE)的依赖,提高低精度模型训练的稳定性和精度。AB算法通过权重混合避免使用STE,QuantNoise随机量化部分权重,全精度辅助模块则利用全精度分支增强梯度来源,从而改善量化模型的训练效果。
摘要由CSDN通过智能技术生成

原文链接:https://www.yuque.com/yahei/hey-yahei/quantization-retrain_improved_qat
欢迎引用&转载,但烦请注明出处~

Quantize Aware Training(QAT)通过在训练过程中融入量化和反量化过程,来实现量化模型的精度恢复,但考虑一下量化过程
![image.png](https://img-blog.csdnimg.cn/img_convert/a86094a7396694cbba5791bd488c0b63.png#align=left&display=inline&height=254&margin=[object Object]&name=image.png&originHeight=329&originWidth=215&size=23595&status=done&style=none&width=166)
w q = q ( w ) = α ⋅ C l a m p ( R o u n d ( w α ) ) w_q = q(w) = \alpha \cdot Clamp(Round(\frac{w}{\alpha})) wq=q(w)=αClamp(Round(αw))
∂ L ∂ w = ∂ L ∂ w q ⋅ ∂ w q ∂ w ≈ S T E ∂ L ∂ w q ⋅ 1 = ∂ L ∂ w q \frac{\partial L}{\partial w} = \frac{\partial L}{\partial w_q} \cdot \frac{\partial w_q}{\partial w} \mathop{\approx} \limits_{STE} \frac{\partial L}{\partial w_q} \cdot 1 = \frac{\partial L}{\partial w_q} wL=wqLwwqSTE

Yolov5 QAT(Quantization-Aware Training)是一种量化感知训练的技术,用于将深度学习模型量化为低精度表示,以减少模型的存储空间和计算需求,同时保持模型在推理阶段的准确性。在Yolov5中,QAT可以应用于训练过程中,以便更好地适应量化后的推理。 量化感知训练的基本思想是在训练过程中模拟量化操作,并通过添加训练过程中的损失来约束模型量化行为。具体而言,在QAT中,模型的权和激活值被表示为低比特位数(如8位)的定点数,而不是传统的浮点数。这样做可以大幅减少模型所需的存储和计算资源。 量化感知训练可以通过以下步骤来实现: 1. 定义量化策略:确定权和激活值的量化位数,以及量化时采用的量化方法(如线性量化或对称量化)。 2. 量化仿真:在训练过程中,在权和激活值上应用量化操作,将它们转换为低比特位数的定点数。这可以通过将浮点数四舍五入到最接近的定点数来实现。 3. 计算量化损失:在模型的前向传播过程中,通过添加量化损失来约束量化后的模型与原始浮点模型之间的差异。量化损失可以使用各种度量方法来计算,如均方根误差(RMSE)或KL散度。 4. 反向传播和参数更新:通过反向传播计算梯度并更新模型的参数,以最小化总体损失,包括量化损失和传统的分类或回归损失。 通过这些步骤,量化感知训练可以使模型在推理阶段保持较高的准确性,并显著减少模型的存储和计算需求。这对于在资源有限的设备上部署深度学习模型非常有用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值