2024-09-01
深度学习
00

目录

背景
系统环境
MNN介绍
MNN环境
Python使用MNN
模型转换
参考文章

背景

背景:手机端需要调用深度学习模型的计算。

方案:python训练模型-->转到MNN框架模型-->放入C++调用(SDK)-->Java调用SDK(JNI).

MNN Python API https://www.yuque.com/mnn/cn/usage_in_python#x8YNO

系统环境

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系统。

安装:

shell
sudo yum install cmake3 protobuf -y

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

shell
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工程:

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

编译前的选择:

vim CMakeLists.txt 我看CMakeLists.txt里的都很有用,我都手动ON上了,以后学习过程中说不定就用了:

在这里插入图片描述

编译:

shell
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

Python 3.7 支持mnn

代码和介绍:https://github.com/xddun/MNN_Demos

模型转换

https://www.yuque.com/mnn/cn/model_convert

参考文章

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

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!