caffemodel 轉ncnn模型


1.下載ncnn源碼(注意儘量下載高版本,低版本可能會報opencv錯)
https://github.com/Tencent/ncnn/tree/20200616


2.編譯安裝(一般不會出現問題,注意cmake 版本不要太低,我的是3.5)

git clone https://github.com/Tencent/ncnn
cd ncnn
mkdir build && cd build
cmake ..
make -j
make install

編譯完成的轉換工具在ncnn/build/tools 目錄下,可以看到 caffe 目錄下已經生成了 caffe2ncnn 和 ncnn2mem 這兩個可執行文件。caffe2ncnn可的作用是將caffe模型生成ncnn 模型,ncnn2mem可對模型進行加密。

3.模型轉換
將舊版caffe模型轉換至新模型:
因爲ncnn只支持轉換新版的caffe模型,所以需要先把自己訓練的caffe模型轉換爲新版的caffe模型。新版caffe框架中自帶了轉換的工具,使用如下:
/home/jinghong/JH/jinghong_project/prac/MobileNetv2-SSDLite/caffe/build/tools/upgrade_net_proto_text deploy_hand.prototxt deploy_hand_new.prototxt
/home/jinghong/JH/jinghong_project/prac/MobileNetv2-SSDLite/caffe/build/tools/upgrade_net_proto_binary mobilenet_iter_113000.caffemodel mobilenet_iter_113000_new.caffemodel


4. 新版caffe模型轉ncnn模型 (mobilenet_ssd 是我生成的ncnn模型)
cd /home/jinghong/ncnn/build/tools/caffe
./caffe2ncnn deploy_hand_new.prototxt mobilenet_iter_113000_new.caffemodel mobilenet_ssd.param mobilenet_ssd.bin

注意生成的ncnn格式的模型中,.param可以理解爲網絡的配置文件,.bin可以理解爲網絡的參數(各種權重)文件。 
若需要對模型進行加密,可用如下命令:
 ./ncnn2mem mobilenet_ssd.param mobilenet_ssd.bin mobilenet_ssd.id.h mobilenet_ssd.mem.h
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章