caffe2ncnn
一、准备工作
安装opencv
安装protobuf
下载ncnn源码并编译
git clone https://github.com/Tencent/ncnn
cd ncnn
mkdir build && cd build
cmake ..
make -j4
make install
二、具体操作
(1)、如果是旧版Caffe模型,需要在Caffe环境中转换为新版Caffe模型;
~/caffe/build/tools/upgrade_net_proto_text deploy.prototxt new_deplpy.prototxt
~/caffe/build/tools/upgrade_net_proto_binary bvlc_alexnet.caffemodel new_bvlc_alexnet.caffemodel
执行后,即可生成一个新版的Cafffe模型;
(2)、编译NCNN源码,编译成功后,会在源码中生成一个build文件夹;
(3)、终端进入ncnn/build/tools/caffe目录下,会发现生成一个caffe2ncnn的可执行文件。
(4)、执行如下命令:(caffe文件名和生成的ncnn文件名需要自己设置)
./caffe2ncnn new_deploy.prototxt new.caffemodel demo.param demo.bin
执行完成之后在ncnn/build/tools/caffe下就可以看到生成的param和bin文件了。
三、转换后模型验证
验证思路:
1、对caffe和ncnn进行相同的预处理,使结果保持一致,例如指定图片的大小、将HWC通道转换为CHW、减均值、归一化处理等操作;
2、输入一张图片,使用Resnet50 Caffe模型运行,得出结果;
进入caffe/build/examples文件下执行resnet50的可执行文件,输入图片,得到预测值的索引和概率的结果
3、同样地,输入同张图片,使用Resnet50 NCNN模型运行,得出结果;
进入ncnn/build/examples文件下执行resnet的可执行文件,输入图片,得到预测值的索引和概率的结果
4、将两个得出的结果进行比较,观察是否大致相同。如果结果大致相同,则模型转换成功;如果结果差距较大,则模型转换失败。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Caffe转NCNN模型转换 - Python技术站