一文了解模型量化中的QAT和PTQ

一文了解模型量化中的QAT和PTQ

由于前一段时间在做模型的转换工作,实际部署的时候需要一些模型加速的方法,常用的有各家的inference框架,如mnn,tnn,tensorrt等,这些框架除了fp32精度外,都支持了int8的精度,而量化到int8常常可以使我们的模型更小更快,所以在部署端很受欢迎。

常用的模型量化方式有训练中量化,QAT,和训练后量化,PTQ,之前转trt时,用的就是PTQ,在一些常用的模型上表现还不错,几乎没有什么掉点,但是在复杂模型,如带有swish的模型啊,或者nas搜出来的模型,表现就不尽人意了,主要是这些模型的参数分布比较奇怪或者是激活值分布没有很强的规律,导致量化失效。而QAT则避免了这一问题,通过在训练过程中去缩小这种误差,可以达到更好的性能。下面大概介绍一些这两种方法。

PTQ

首先是PTQ,以tensorrt的Int8量化为例,它的原理是什么呢,简单概括就是对于常用的模型,如googlenet,resnet等,图片经过网络生成的特征图的值往往具有相同的规律。如下图所示:
在这里插入图片描述
图中的绿点表示很多张图的统计结果,所以我们可以看出对于同一模型,任意图的特征激活值都呈现了低激活值高密度的特点,而比较大的那些值所占的比例微乎其微,可以忽略不计,根据这个特点,我们在量化

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值