樹莓派安裝MNN

前言

  MNN是阿里開源的一款用於邊緣端設備部署、推理深度學習模型的框架,與騰訊開源的ncnn類似哈。
  MNN在[github](https://github.com/alibaba/MNN "github")上有開源,同時官方也有提供[開發接口文檔](https://www.yuque.com/mnn "開發接口文檔");而且寫的比較詳細。跟ncnn一樣,MNN也是在手機端用的還比較多,而且支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用網絡

安裝依賴

  首先安裝依賴,跟ncnn類似,依賴也比較少,而且跟ncnn的依賴差不多,所以如果編譯過ncnn,基本上也不需要在安裝什麼庫。主要安裝以下依賴庫:
sudo apt-get install cmake
sudo apt-get install libprotobuf-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libvulkan-dev 

基本上,就需要安裝這幾個工具和庫,這幾個也是深度學習編程常見的庫。

下載源碼編譯安裝

  首先當然是要先下載源碼,通過git命令來下載,或者直接去github下載壓縮包,然後解壓。
git clone https://github.com/alibaba/MNN.git
cd MNN
./schema/generate.sh
mkdir build
cd build
  默認編譯:
cmake .. && make -j4
如果需要打開某些功能還可以帶參數編譯:
 cmake -DMNN_SUPPORT_TFLITE_QUAN=true -DMNN_BUILD_CONVERTER=true -DMNN_BUILD_QUANTOOLS=true -DMNN_BUILD_DEMO=true -DMNN_OPENMP=true ..

修改MNN下的CMakeLists.txt文件。具體參數以及定義如下:

參數 默認值 作用
MNN_VULKAN OFF 編譯 GPU 優化庫:MNN-VULKAN
MNN_ARM82 OFF 編譯 MNN-ARM82 (新架構的CPU 優化 Backend)
MNN_OPENCL OFF 編譯 GPU 優化庫: MNN-OpenCL
MNN_OPENGL OFF 編譯 GPU 優化庫:MNN-OpenGL
MNN_USE_SYSTEM_LIB OFF 編譯 OpenCL / Vulkan 時,依賴系統的OpenCL / Vulkan 庫或者。OFF 表示在運行時尋找系統驅動
MNN_BUILD_HARD OFF ARM平臺下控制-mfloat-abi參數爲hard或softfp
MNN_BUILD_SHARED_LIBS ON 控制MNN相關庫是否編譯爲動態庫而非靜態庫
MNN_FORBID_MULTI_THREAD OFF 禁用多線程
MNN_BUILD_DEMO OFF 編譯Demo
MNN_BUILD_TRAIN OFF 編譯訓練相關
MNN_BUILD_QUANTOOLS OFF 編譯量化工具
MNN_BUILD_CONVERTER OFF 編譯模型轉換器
MNN_EVALUATION OFF 編譯評估工具
MNN_DEBUG_MEMORY OFF 調試內存
MNN_DEBUG_TENSOR_SIZE OFF 調試Tensor大小
MNN_SUPPORT_TFLITE_QUAN OFF 支持TFLite的量化Op
MNN_PORTABLE_BUILD OFF 靜態鏈接第三方依賴來創建不依賴特定路徑的可執行文件
MNN_SEP_BUILD ON 分開編譯MNN的各個後端以及表達式.只在MNN_BUILD_SHARED_LIBS=ON時有效
MNN_AAPL_FMWK OFF 在Apple平臺下將MNN作爲Framework而非靜態/動態庫編譯並打包metallib
  編譯後可將結果打包,默認打包路徑是
頭文件:/usr/local/include/MNN
庫文件:/usr/local/lib/libMNN.so
工具:/MNN/build

綠橘梢頭幾點春。似留香蕊送行人。
明朝紫鳳朝天路,十二重城五碧雲。
歌漸咽,酒初醺。盡將紅淚溼湘裙。
贛江西畔從今日,明月清風憶使君。
– 宋-晏幾道《鷓鴣天·綠橘梢頭幾點春》

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