程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【推理框架】MNN框架 C++、Python、Java使用例子 Demo

編輯:Python

文章目錄

  • 背景
  • 系統環境
  • MNN介紹
  • MNN環境
  • Python使用MNN
  • 參考文章

背景

背景:手機端需要調用深度學習模型的計算。
方案:python訓練模型–>轉到MNN框架模型–>放入C++調用(SDK)–>Java調用SDK(JNI).

系統環境

CentOS Linux release 7.9.2009 (Core)
Linux iZuf627r0ggzf84xn57fuvZ 3.10.0-1160.62.1.el7.x86_64
Tesla V100 32G CUDA11
Miniconda3

推薦Linux系統,不推薦Windows系統。

安裝:

sudo yum install cmake3 protobuf -y

注意: CMake 3.0 or higher is required, 所以:

sudo ln -s /usr/bin/cmake3 /usr/bin/cmake

MNN介紹

直接查看文檔:https://github.com/alibaba/MNN/blob/master/README_CN.md



工具
MNN-Converter:模型轉換工具,由Frontends和Graph Optimize構成。前者負責支持不同的訓練框架,MNN當前支持Tensorflow(Lite)、Caffe、ONNX(PyTorch/MXNet的模型可先轉為ONNX模型再轉到MNN)和Torchscripts;後者通過算子融合、算子替代、布局調整等方式優化圖,一般離線運行。
MNN-Compress: 模型壓縮工具,在一定的精度誤差許可下,對MNN模型進行壓縮,減少模型體積,提升運行性能。
MNN-Express :支持帶控制流的模型運行,支持調用 MNN 的算子進行自定義的計算。
MNN-CV :類似 OpenCV ,但核心計算功能基於 MNN 實現的圖像處理算法庫
MNN-Train :MNN 訓練模塊,支持各平台訓練

MNN環境

參考:https://www.yuque.com/mnn/cn/demo_project

下載MNN工程:

git clone https://github.com/alibaba/MNN.git

編譯前的選擇:
vim CMakeLists.txt 我看CMakeLists.txt裡的都很有用,我都手動ON上了,以後學習過程中說不定就用了:

編譯:

cd path/to/MNN
# 生成 schema ,可選
cd schema && ./generate.sh
# 進行編譯
cd path/to/MNN # 注意回到根目錄
mkdir build && cd build
cmake -DMNN_BUILD_DEMO=ON ..
make -j

在系統中構建這個MNN後,就能使用MNN提供的眾多工具了。

Python使用MNN

代碼和介紹:https://github.com/xddun/MNN_Demos

參考文章

https://blog.csdn.net/wl1710582732/article/details/107731147


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved