Mxnet模型轉化為ncnn模型,並驗證轉化正確性

小壞包發表於2019-05-23

一、背景

同時已經訓練好一個基於Mxnet的人臉屬性檢測模型,為了適應專案需要要將Mxnet轉為ncnn模型。

Mxnet模型格式如下:

 

二、預期目標

利用上述模型,可以實現人臉屬性的檢測。檢測準確性如下:

('acc_gender: ', 0.9220647773279352)
('acc_glass: ', 0.9949392712550608)
('acc_age: ', 0.8390688259109311)
('acc_race: ', 0.7327935222672065)

轉換後的ncnn模型能夠實現上述準確性即可認為轉化成功。

三、轉化流程

1.使用清華源安裝MXNET、scikit-image

pip install mxnet -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.按照參考文獻編譯ncnn

https://blog.csdn.net/ycdhqzhiai/article/details/80738987

ps:

(1)所有命令使用VS的命令提示符工具

(2)如果如果編譯ncnn時提示error LNK2038: 檢測到“RuntimeLibrary”的不匹配項: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”。將CMakeCache.txt中的MD改為MT。

3.參考文獻https://www.jianshu.com/p/d8b31688d0a1模型轉換。

指令碼內容說明:
set MXNET_MODEL_DIR=E:/ncnn/ncnn/build2015/tools/mxnet/orig_model  #原始模型資料夾
set NCNN_MODEL_DIR=E:/ncnn/ncnn/build2015/tools/mxnet/converted_model  #轉換後模型資料夾
mxnet2ncnn.exe  %MXNET_MODEL_DIR%/model-symbol.json  %MXNET_MODEL_DIR%/model-13999.params    %NCNN_MODEL_DIR%/multitask_zxh.param   %NCNN_MODEL_DIR%/multitask_zxh.bin  #model-symbol.json 原始的名稱  

model-13999.params原始引數名稱
pause  

執行後可以得到兩個新的模型檔案。multitask_zxh.param和multitask_zxh.bin。

四、模型驗證

原始的模型是用python呼叫的,新生成的模型檔案需要用C語言呼叫。按照部落格中的方法可以實現新模型的呼叫,https://blog.csdn.net/qq_36982160/article/details/79929869

同一幅影像,新舊模型得到的向量完全相同。

相關文章