1. 简介
模型量化(Model Quantization)通过某种方法将浮点模型转为定点模型。比如说原来的模型里面的权重(weight)都是float32,通过模型量化,将模型变成权重(weight)都是int8的定点模型

模型量化有 8/4/2/1 bit等:
- 16位: (半精度(FP16),单精度(FP32),双精度(FP64)) Floating points
- 8位 最常见也相对成熟。各种主流框架和硬件都支持。
- 8位以下目前而言学界相对玩得多些,工业界有少量支持,但还没有太成熟。8位以下主要是4,2和1位(因为位数为2的幂次性能会更好,也更容易实现)。如果精度低至1位,也就是二值化,那可以用位运算进行计算。这对处理器而言是很友好的。
IEEE标准中的FP16格式如下:

取值范围是5.96× 10−8 ~ 65504,而FP32则是1.4×10-45 ~ 3.4×1038。
从FP16的范围可以看出,用FP16代替原FP32神经网络计算的最大问题就是精度损失。所以量化:
- 减少内存带宽和存储空间:不仅模型大小明显降低, activation 采用 8-bit 之后也将明显减少对内存的使用,这也意味着低精度推理过程将明显减少内存的访问带宽需求,提高高速缓存命中率,尤其对于像 batch-norm, relu,elmentwise-sum 这种内存约束(memor

本文介绍了模型量化技术,包括其原理、不同位宽的选择(如8/4/2/1bit),以及离线量化和量化感知训练的区别。重点讲解了量化过程中的关键参数如scalefactor和zeropoint,以及通道量化、层量化和全局量化等不同粒度。
&spm=1001.2101.3001.5002&articleId=131181350&d=1&t=3&u=c477bddec72d4e6794c7b1a229021d3e)
1897

被折叠的 条评论
为什么被折叠?



