阿里推理框架MNN初探

MNN是一个功能很强大的深度学习模型推理框架,目的是加速推理,为了使很多比较大模型进行落地,比如在手机端运行

使用之前需要准备一下环境

这里我是在linux上使用的

一、环境准备

git clone https://github.com/alibaba/MNN.git
cd MNN
cd schema && ./generate.sh
mkdir build && cd build
cmake -DMNN_BUILD_DEMO=ON ..
make -j8

如需要全局下使用命令,可以自行设置环境变量,这里我是自行设置了的。

注意,这个只能在cmake3.0及其以上的版本才行,如果需要安装可以参考(点一下) ,实测可以

当环境准备好以后,我们就可以测一下了

在使用之前 ,需要说明的是,mnn并不能直接使用TF/CAFFE/TFLITE等训练保存的模型,需要转换然后就可以使用

mnn提供了python方式的转换

需要提前安装

pip install  MNN

二、模型的转换与使用

1.转换tflite模型文件

这是一个图像分割的模型

下载好模型以后,就可以转换了,模型我是放置在/opt/modeldata/路径下的

mnnconvert -f TFLITE --modelFile /opt/modeldata/deeplabv3_257_mv_gpu.tflite --MNNModel deeplabv3_257_mv_gpu.mnn

实测一下:

segment.out deeplabv3_257_mv_gpu.mnn /opt/images/000000000139.jpg output.jpg

结果:

2.转换tf的模型文件 

这是一个姿态预测的模型

mnnconvert -f TF --modelFile /opt/modeldata/model-mobilenet_v1_075.pb --MNNModel model-mobilenet_v1_075.mnn

测试一下:

multiPose.out model-mobilenet_v1_075.mnn /opt/images/123.jpg output1.jpg

模型转换前后,大小没有多少变化

 至此,说明可以成功进行推理 

主要参考:https://www.yuque.com/mnn/cn/demo_project

猜你喜欢

转载自blog.csdn.net/zhou_438/article/details/108869477