MegEngine 提供从训练到部署完整的量化支持,包括量化感知训练以及训练后量化,凭借“训练推理一体”的特性,MegEngine更能保证量化之后的模型与部署之后的效果一致。本文将简要介绍神经网络量化的原理,并与大家分享MegEngine量化方面的设计思路与实操教程。
背 景
近年来随着边缘计算和物联网的兴起与发展,许多移动终端(比如手机)成为了深度学习应用的承载平台,甚至出现了各式各样专用的神经网络计算芯片。由于这些设备往往对计算资源和能耗有较大限制,因此在高性能服务器上训练得到的神经网络模型需要进行裁剪以缩小内存占用、提升计算速度后,才能较好地在这些平台上运行。
一种最直观的裁剪方式就是用更少位数的数值类型来存储网络参数,比如常见的做法是将 32 位浮点数模型转换成 8 位整数模型,模型大小减少为 1/4,而运行在特定的设备上其计算速度也能提升为 2~4 倍,这种模型转换方式叫做量化(Quantization)。
量化的目的是为了追求极致的推理计算速度,为此舍弃了数值表示的精度,直觉上会带来较大的模型掉点,但是在使用一系列精细的量化处理之后,其在推理时的掉点可以变得微乎其微,并能支持正常的部署应用。
原 理
实现量化的算法多种多样,一般按照代价从低到高可以分为以下四种:
原文链接:【https://www.infoq.cn/article/B6IRpefL09cPy5GKh0Xd】。未经作者许可,禁止转载。