背景:手机端需要调用深度学习模型的计算。
方案: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
直接查看文档: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 训练模块,支持各平台训练
参考:https://www.yuque.com/mnn/cn/demo_projectprotobuf
下载MNN工程:
git clone https://github.com/alibaba/MNN.git
编译:
cd path/to/MNN
# 生成 schema ,可选
cd schema && ./generate.sh
# 进行编译
cd path/to/MNN # 注意回到根目录
mkdir build && cd build
cmake -DMNN_BUILD_DEMO=ON ..
make -j8
https://blog.csdn.net/wl1710582732/article/details/107731147