模型推理ncnn 模型转换及量化流程

Posted 极智视界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型推理ncnn 模型转换及量化流程相关的知识,希望对你有一定的参考价值。

欢迎关注我的公众号 [极智视界],回复001获取Google编程规范

O_o>_<o_OO_o~_~o_O

  本文介绍一下 ncnn 模型转换及量化流程,以 from_darknet yolov4 为例。

  关于 ncnn 的 ubuntu 和 windows 安装方法可以参考我之前写的:《【嵌入式AI】ubuntu 安装 ncnn》、《【经验分享】win10 qmake 构建 ncnn vs 工程》。

1、模型转换

./darknet2ncnn yolov4.cfg yolov4.weights yolov4.param yolov4.bin 1

  末尾 1 表示三个 yolo 分支合并,若为 0 表示三个 yolo 分支独立输出。


2、图优化

./ncnnoptimize yolov4.param yolov4.bin yolov4-opt.param yolov4-opt.bin 0

3、int8 量化

3.1 优化模型

./ncnnoptimize yolov4.param yolov4.bin yolov4-opt.param yolov4-opt.bin 0

3.2 创建校准表

find images/ -type f > imagelist.txt
./ncnn2table yolov4-opt.param yolov4-opt.bin imagelist.txt yolov4.table mean=[104,117,123] norm=[0.017,0.017,0.017] shape=[224,224,3] pixel=BGR thread=8 method=kl

3.3 量化模型

./ncnn2int8 yolov4-opt.param yolov4-opt.bin yolov4-int8.param yolov4-int8.bin yolov4.table

3.4 加载 int8 模型进行推理

ncnn::Net yolov4;
yolov4.load_param("yolov4-int8.param");
yolov4.load_model("yolov4-int8.bin");
...
ncnn::Extractor ex = yolov4.create_extractor();
ex.input("data", in);
ex.extract("output", out);
...

  以上以很简洁的方式分享了一下 ncnn from_darknet 的模型转换及量化推理流程。希望会对你的学习有一些帮助。


 【公众号传送】

《【模型推理】ncnn 模型转换及量化流程》


扫描下方二维码即可关注我的微信公众号【极智视界】,获取更多AI经验分享,让我们用极致+极客的心态来迎接AI !

以上是关于模型推理ncnn 模型转换及量化流程的主要内容,如果未能解决你的问题,请参考以下文章

NCNN 模型推理详解及实战

模型推理寒武纪 MLU resnet50 量化及离线推理流程

NCNN验证YOLOV4模型输入数据归一化系数

模型推理比特大陆 SE5 边缘盒子 caffe SSD 量化与转换部署模型

模型推理谈谈模型量化组织方式

模型推理ncnn 新增 upsample cpu 算子方法