1.用TFLite实现post training quantization
训练后量化,是 tensorflow 支持的模型量化方法,可实现将浮点模型进行压缩,提高执 行效率。该方法以较低的推理精度损失将连续取值(或者大量可能的离散取值)的浮点型模 型权重,或流经模型的张量数据,定点近似(通常为 int8)为有限多个离散值的过程;它是 以更少位数的数据类型用于近似表示 32 位有限范围浮点型数据的过程,而模型的输入输出 依然是浮点型,从而达到减少模型尺寸大小、减少模型内存消耗及加快模型推理速度等目标。
主要包含:训练后动态范围量化、训练后全整数量化、训练后 float16 量化。
2.用TFLite实现quantization_aware_training
量化感知训练,是 tensorflow 支持的另一种模型量化方法。该种方法是在训练过程中模 拟量化的过程,这样训练之后的量化模型可以最大地逼近原始 float32 浮点模型的精度。通 过 tensorflow 封装的量化感知训练模块,可在搭建的模型上设置伪量化节点,该伪量化节点 将统计训练过程中流经该节点数据的最大值和最小值,并且参与前向计算,模拟量化计算的 前向值会被记入 loss 中,反向计算时,由于参数梯度一般较小,因此仍然为浮点运算。