Vitis AI 进阶认知(Torch量化基础+映射+量化参数+对称性+每通道+PTQ+QAT+敏感性)

目录

1. 介绍

2. 基本概念

2.1 映射函数

2.2 量化参数

2.3 校准

2.4 对称与非对称量化

2.5 Per-Tensor and Per-Channel

2.6 PTQ

2.7 QAT

2.8 敏感性分析

2.6 退火学习率

3. 几点建议

4. 总结


1. 介绍

Practical Quantization in PyTorch | PyTorchQuantization is a cheap and easy way to make your DNN run faster and with lower memory requirements. PyTorch offers a few different approaches to quantize your model. In this blog post, we’ll lay a (quick) foundation of quantization in deep learning, and then take a look at how each technique looks like in practice. Finally we’ll end with recommendations from the literature for using quantization in your workflows.icon-default.png?t=N7T8https://pytorch.org/blog/quantization-in-practice/#fundamentals-of-quantization

本文介绍了量化的基本概念和实践应用:

  • 映射函数:将浮点值映射到整数空间,常用的映射函数是线性变换。
  • 量化参数:包括比例因子 ( S ) 和零点 ( Z ),用于确定输入数据的范围和偏移。
  • 校准:确定量化过程中所需的缩放因子和零点,常用方法包括 MaxMin、Percentile、Entropy、MSE 和 Diffs。
  • 对称与非对称量化:对称量化无需计算零点偏移,而非对称量化则需要。
  • Per-Tensor 和 Per-Channel:Per-Tensor 使用相同的量化参数,而 Per-Channel 则为每个通道使用不同的量化参数。
  • PTQ(训练后静态量化):适用于大型模型,通过模块融合和定期校准来减少量化误差。
  • QAT(量化感知训练):通过在训练过程中模拟量化误差来提高小型模型的量化精度。
  • 敏感性分析:确定哪些层对量化最敏感,并保留这些层的 FP32 精度。
  • 退火学习率:通过动态调整学习率来帮助模型更好地收敛。

2. 基本概念

2.1 映射函数

映射函数是一个将值从浮点映射到整数空间的函数。

常用的映射函数是线性变换,由下式给出:

Q_{r}=round(r/S+Z)

其中,r是输入,S和Z是量化参数。

可以将量化后的模型重新转换为浮点空间,反函数由下式给出:

\widetilde{r}=(Q_{r}-Z)\cdot S

\widetilde{r}\neq r,它们的差值构成了量化误差。

2.2 量化参数

映射函数有两个参数:比例因子 S 和零点 Z。

比例因子 S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值