MNN推理引擎框架简介

1.MNN介绍

随着手机算力的不断提升,以及深度学习的快速发展,特别是小网络模型不断成熟,原本在云端执行的推理预测就可以转移到端上来做。端智能即在端侧部署运行AI算法,相比服务端智能,端智能具有低延时、兼顾数据隐私、节省云端资源等优势。

MNN(Mobile Neural Network)一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。

图 1:MNN概述图 

2.MNN整体方案 

图 2:MNN框架 

由上图所示,MNN基本的工作流由两部分组成,即Offline Conversion和On-device Inference。

Converter由Frontends和Graph Optimize构成。前者负责支持不同的训练框架,MNN当前支持Tensorflow(Lite)、Caffe和ONNX(PyTorch/MXNet的模型可先转为ONNX模型再转到MNN),最终全部转换为MNN自定义的模型格式(.mnn);后者通过算子融合、算子替代、模型压缩、布局调整等方式对图进行基本的优化操作。

On-device Inference由三部分组成,分别是:Pre-inference、算子级优化和Backend Abstraction。在Pre-inference模块中引入了一种对可选计算方案的代价评估机理,在已知输入大小和内核形状的前提下,从多种方案中选择一种最优的方案;算子级优化主要包括在卷积和反卷积中应用Winograd算法、在矩阵乘法中应用Strassen算法、低精度计算、手写汇编、多线程优化、内存复用等;Backend Abstraction主要是提供了一套统一的接口来隐藏后端的差异,支持多种硬件架构,支持OpenCL,OpenGL,Vulkan和Metal等,可以方便地进行扩展,比如TPU、FPGA等。

3. Pre-inference 

图 3:加速方案选择 

在移动应用中,计算速度和轻量化是主要考虑的因素,为了实现轻量化,就不能使用OpenBLAS和Eigen等加速库,所以有一些推理引擎框架中使用手工搜索的方式,不依赖于

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Mac上进行MNN推理,首先你需要配置MNN环境。你可以通过以下两种方法之一来配置你的MNN环境。 第一种方法是通过官方网站提供的预编译库来配置MNN环境。你可以在MNN的GitHub页面上找到适用于Mac的预编译库。根据官方文档的说明,下载并安装相应的运行库即可。 第二种方法是下载MNN的源代码,并根据官方文档的指引进行编译。在官方文档中,你可以找到详细的编译指南,包括各种版本的编译说明。根据你的需要选择合适的编译版本,并按照文档中的说明进行编译。 完成配置后,你可以使用MNN进行推理。首先,你需要编译训练部分,可以通过以下命令进行编译: ``` cd MNN/build cmake .. -DMNN_BUILD_TRAIN=ON make -j8 ``` 编译完成后,你会在本地出现MNN的动态库。 接下来,你可以使用MNNConvert工具将模型文件转换为MNN模型文件。使用以下命令进行转换: ``` ./MNNConvert -f TF --modelFile model.pb --MNNModel pose.mnn --bizCode biz ``` 这将把TensorFlow格式的模型文件model.pb转换为MNN格式的模型文件pose.mnn,并使用biz作为业务代码。 这样,你就可以在Mac上使用MNN进行推理了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mnn推理示例](https://blog.csdn.net/lyj223061/article/details/122164932)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [阿里MNN端上深度神经网络推理引擎的实践记录](https://blog.csdn.net/u010008647/article/details/122404373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值