赞
踩
模型部署时,往往考虑实际问题,算力、内存、带宽、速度、FPS、功耗、时延等等。特别是在移动端和嵌入式设备等资源受限的边缘侧应用场景中更加需要我们进行优化。
8-bit 低精度推理中, 我们将一个原本 FP32 的 weight/activation 浮点数张量转化成一个 int8/uint8 张量来处理。
如下图:量化前与量化后
一. 好处:
二、缺点:
1) 增加了操作复杂度,在量化时需要做一些特殊的处理,否则精度损失更严重
2) 必定损失一定的精度,虽然在微调后可以减少精度损失,但推理精度确实下降
数据类型表示:
量化算法负责将 FP32 数据映射到 int8/uint8 数据。量化算法分为对称算法和非对称算法,下面我们主要介绍这两种算法的详细内容及其区别。
但是,从上述公式我们可以发现 x_q 的结果只能是一个非负数,这也意味着其无法合理地处理有符号的 int8 量化,Pytorch 的处理措施是将零点向左移动 -128,并限制其在 [-128,127] 之间。
非对称算法一般能够较好地处理数据分布不均与的情况,较好地解决 FP32 数据分布不明显倾向于一侧的问题,量化数据的分布与原始数据分布情况大致相似,较好地保留了 FP32 数据信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。