算法部署——量化概述

本文详细介绍了深度学习模型的量化原理,包括数据类型的范围和量化流程,特别是如何通过KL散度评估量化效果,并给出了NCNN的安装步骤。在NCNN中,量化过程由ncnn2table工具描述,通过阅读源码可以深入了解网络结构和算子实现。掌握C++编程对于算法部署至关重要。
摘要由CSDN通过智能技术生成

算法部署——量化概述

一、量化原理

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的源码进行阅读,加深对网络结构的理解;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值