NCNN的INT8量化使用方式

编译NCNN

mkdir build && cd build && cmake ../

进入到build/tools/darknet目录,将来源于darknet的模型文件和权重文件拷贝一份到这里:

转换过程如下:

优化:

./ncnnoptimize /home/czl/ncnn/ncnn/build/tools/darknet/ncnn.param /home/czl/ncnn/ncnn/build/tools/darknet/ncnn.bin yolov4-tiny-opt.param yolov4-tiny-opt.bin 0

生成的优化过的模型如下:

检测实战,未优化的模型推理结果:

优化后的模型推理结果:

下载量化校准表图片

下载官方给出的1000张ImageNet图像,很多同学没有梯子,下载慢,可以用下这个链接:

imagenet-sample-images-master.zip_yolov4ncnn-深度学习文档类资源-CSDN下载ncnn量化int所需的校准图像yolov4ncnn更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/weixin_45829462/18704213

图片内容包括:

进入到目录build/tools/quantize,创建images文件夹,之后将imagenet图片全部拷贝到此目录

之后,执行命令 find images/ -type f >imagelist.txt,创建图像文件列表。

之后执行命令:

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

量化模型:

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

生成的yolov4-tiny-int8.bin即为量化后的权重文件,可以看到它的大小是量化前的 四分之一,这就是量化的一个优势,可以减小内存使用量。

结束!

Guess you like

Origin blog.csdn.net/tugouxp/article/details/122489836