MNN学习

MNN简介

MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测

MNN应用流程

在这里插入图片描述

  • 训练
    在开源框架上基于训练数据训练自己的模型,如TensorFlow、Pytorch等
  • 转换
    将其他训练框架模型转换为MNN模型。MNN当前支持Tensorflow(Lite)、Caffe和ONNX的模型转换。支持的算子
  • 推理
    端侧加载MNN模型进行推理。端侧运行库的编译支持平台:iosAndroidLinux/macOS/UbuntuWindows;同时提供有API接口文档

应用实例

  • 下载MNN代码
git clone https://github.com/alibaba/MNN.git
  • 编译(此处为linux系统)
cd path/to/MNN
cd schema && ./generate.sh
mkdir build && build
cmake -DMNN_BUILD_DEMO=ON ..
make -j8
  • Demo示例(姿态检测)
    代码:demo/exec/multiPose.cpp
  1. 下载原始Tensorflow模型 pose model
  2. 转换工具编译,参考
  3. 使用模型转换工具转为MNN模型TensorFlow ->MNN
#./MNNConvert -f TF --modelFile XXX.pb --MNNModel XXX.mnn --bizCode biz
./MNNConvert -f TF --modelFile models/model-mobilenet_v1_075.pb --MNNModel  models/model-mobilenet_v1_075.mnn --bizCode biz
  1. 执行姿态检测
./multiPose.out model.mnn input.jpg pose.png
  1. 结果
    输入
    输出
  2. 其他说明
    以上的示例demo是官方给出的demo,我在linux下实现了一遍,multipose.out是官方编译生成的二进制可执行文件,源码在demo文件夹下可以找到。当我们在具体的项目中使用MNN的时候主要就是编写对应项目的main函数,当用MNN模型转换的时候遇到不支持的层时此时需要自己手写对应的算子实现,支持的算子可以在上面的链接中查看到。后面我会将我用facebox的人脸检测模型用MNN转换实现也更新上来。

Reference

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值