算法部署——量化概述

  • Post author:
  • Post category:其他




算法部署——量化概述



一、量化原理

1、数据类型范围

在这里插入图片描述

2、原理详解

在这里插入图片描述

实现流程:在每层计算时需要先将feature map量化到INT8,然后将weights量化到INT8,最后卷积计算得到INT32的输出值,输出值乘以scale(float)值反量化到float,然后加上浮点格式的bias作为下一层的输入;

  • scale值的计算

在这里插入图片描述

使用KL散度判断量化的好坏;

Scale = T / 127;

KL散度计算公式:

在这里插入图片描述



二、NCNN安装

$ git clone https://github.com/Tencent/ncnn.git
$ cd ncnn
$ cd build
$ cmake -DNCNN_VULKAN=OFF ..
$ make -j8
$ make install

​ 在ncnn根目录下的src文件中,有各个网络层的定义源码,可供查阅;

​ 在ncnn根目录下的tools/quantize中,ncnn2table描述了量化的全过程,详情请看源码;



总结

算法部署中量化的操作过程并不复杂,重点需要掌握的时C++的使用,这在整个部署中也是至关重要的;对于各个算子的实现,也可根据NCNN的源码进行阅读,加深对网络结构的理解;



版权声明:本文为weixin_40620310原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。