动态离线量化方法、静态离线量化方法和量化训练方法是什么区别?
https://paddlelite.paddlepaddle.org.cn/user_guides/quant_aware.html
https://paddlelite.paddlepaddle.org.cn/user_guides/quant/quant_post_dynamic_demo.html
动态离线量化方法简单易用,不需要校准数据,主要用于减小模型体积,无法明显提升预测速度。
静态离线量化通过利用少量校准数据计算量化因子,能够快速生成量化后的模型。此量化模型可用于预测推理,显著降低计算负担、内存占用,并减少模型文件大小。
静态离线量化包括两种常见的量化因子计算方法:非饱和量化和饱和量化。
1.非饱和量化方法:该方法计算 Tensor 的绝对值最大值(abs_max),并将其映射为 127。 2.饱和量化方法:采用 KL 散度来确定一个合适的阈值 T(0 < T < abs_max),将其映射为 127。
通常,待量化操作(Op)的权重采用非饱和量化方法,而待量化操作的激活(如输入和输出)则使用饱和量化方法。 使用条件:
缺点:
优势:
缺点:
建议首先使用“静态离线量化”方法对模型进行量化,验证精度后再考虑使用量化训练。如果静态量化后的模型精度不满足需求,再采用量化训练以优化精度。
量化后的模型输出都要反量化才会得到浮点数值,一般框架里都带了,所以不用我们操作。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!