地平线量化方案QAT原理介绍及实践,包含源代码

本文详细介绍了地平线的量化感知训练(QAT)方案,包括QAT原理、环境部署、模型准备、QAT模型量化过程,以及量化训练策略。QAT通过在浮点模型中插入伪量化节点来提高量化后的精度,涉及的工具和配置如prepare_qat_fx、qconfig_dict和prepare_custom_config_dict。文章还提供了模型结构检查、量化精度验证的方法,以及模型编译上板的步骤。
摘要由CSDN通过智能技术生成

1 what is QAT?

QAT全称为quantization aware training,是一种模型量化手段,通过在训练过的浮点模型中插入伪量化节点来实现后续的精度fintune,因此QAT相较于PTQ来说往往精度会更高。由于定点数值无法用于反向梯度计算,实际操作过程是在某些op前插入伪量化节点(fake quantization nodes),用于在训练时获取流经该op的数据的截断值或分布,便于在部署量化模型时对节点进行量化。

在这里插入图片描述

如上图所示,a为量化的定点模型,数据和模型权重均已变为定点数,通常情况下我们希望后量化(PTQ)能直接得到a所示的定点模型,并且精度不会损失太多。如果精度损失太多,则需要借助图b所示的量化感知训练(QAT)减少量化误差。QAT的基本原理是在浮点模型中插入伪量化节点,使得模型在训练中可以感知到量化误差,减少量化损失的精度。如上图b所示,在模型中针对conv-weight和activation插入FakeQuanti节点。由FakeQuanti模拟量化过程,weight会学习到量化的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Charmve

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值