mxnet轉ncnn模型量化及使用

參考https://www.cnblogs.com/wanggangtao/p/11352948.html

一、mxnet模型轉ncnn模型

可以參考上篇博客文章

https://blog.csdn.net/kupepoem/article/details/104814665

二、ncnn模型量化

1、ncnn2table生成量化表

(1)、終端進入vs2015build\tools\quantize\Release

(2)、ncnn2table --param=model.param --bin=model.bin --images=org_bvt_mul_allinone/ --output=model.table --mean=104.0,117.0,123.0 --norm=1.0,1.0,1.0 --size=112,112 --swapRB --thread=2

  • 注:這裏的image指的是圖片集,並且是圖片數量較多的圖片集;

(3)、執行命令後,即可看見原文件目錄下生成model..table的量化表

三、ncnn2int8量化網絡模型

1、執行可執行文件ncnn2table,生成量化表,參考步驟二

2、終端進入vs2015build\tools\quantize\Release

3、執行命令ncnn2int8

    ncnn2int8 [inparam] [inbin] [outparam] [outbin] [calibration table]

     ncnn2int8  model.param  model.bin  model_q.param  modelq.bin model.table

4、執行命令後,即可在原文件目錄下生成param和bin的輸出文件(即進行int8量化後的ncnn模型)

四、使用

        這個ncnn版本的int8量化模型的使用基本和fp32的使用基本一樣,

       ncnn::Net netq

        netq.load_param("model_q.param");
        netq.load_model("model_q.bin");

五、結果及討論

     4.65M的模型降低到了1.35M,x86pc上平均運行一次的時間從0.46s提高到0.269s左右,效果基本還可以,具體效果的精確數據還需要測一下。

 

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