小米开源框架MACE 简介
转载自 https://www.jianshu.com/p/2ab68779d05b
前言
MACE 是小米公司自研的移动端深度学习框架 Mobile AI Compute Engine,2017年12月15日于公司内部正式发布。2018年6月28日,在“2018(第十三届)开源中国开源世界高峰论坛”上,小米公司人工智能与云平台副总裁崔宝秋博士宣布开源 MACE,赋能中国 AI 产业,以期推动移动端深度学习的发展。
文章内容翻译自 MACE 官方手册,记录本人阅读与开发过程,力求不失原意,但推荐阅读原文。
https://media.readthedocs.org/pdf/mace/latest/mace.pdf
Github地址:https://github.com/xiaomi/mace
声明:如有侵权,请联系作者删除
介绍
MACE 全称 Mobile AI Compute Engine (MACE),是小米公司开源的一个深度学习推理框架,它针对不同的移动端计算平台做了专门的优化。下图是其整体架构:
![](https://upload-images.jianshu.io/upload_images/9389734-861a602444da3b65.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
模型格式
MACE 自定义了一种类似 Caffe2 的模型格式。Tensorflow 和 Caffe 训练得到的模型可以转换成 MACE 模型进行部署。MACE 采用 YAML 文件描述模型的部署细节。下一章会给出 YAML 文件的创建方法。
模型转换
目前,我们提供了Tensorflow、Caffe模型到MACE模型的转换工具,未来会支持更多的框架。
模型加载
MACE 模型包含两部分:图(model graph)和参数张量(model parameter tensors)。graph 部分使用 Protocol Buffers 做序列化存储。所有的模型参数张量(model parameter tensors)被串联存储在一个连续的字节数组中,在后续段落中我们称之为张量数据(tensor data)。
模型可以通过3种方式进行加载:
model graph 和 tensor data 均在外部动态加载(默认情况下,从文件系统加载,但是用户可以自由选择一些实现方式,例如压缩或加密)。这种方式具有最大的灵活性但是模型的保护性最差。
model graph 和 tensor data 转换成 C++ 代码并通过执行编译后的代码进行加载。这种方式提供了最强的模型保护措施,是最简单的部署方式。
model graph 按照方式 2 一样被转换成 C++ 代码,tensor data 按照方式 1 进行外部加载。
小米开源框架MACE 简介相关推荐
- 小米开源框架MACE 源码阅读笔记 1
转载自 https://www.jianshu.com/p/7061fd67d419 前扯 在前不久的某高峰论坛上,小米开源了其移动端的深度学习框架Mobile AI Compute Engine(M ...
- 小米开源框架MACE 源码阅读笔记
转载自 https://www.jianshu.com/p/7061fd67d419 前扯 在前不久的某高峰论坛上,小米开源了其移动端的深度学习框架Mobile AI Compute Engine(M ...
- 小米开源框架mace android案例调试
小米开源框架mace android案例调试 1. 准备工作 编译环境准备:请参照小米官方的文档: https://mace.readthedocs.io/en/latest/installation ...
- 小米开源框架MACE - 源码阅读笔记一
首先先一目了然看一下其目录结构(这些个源码可以在github上下载到,只要在GitHub搜索mace即可): 介绍 MACE(Mobile AI Compute Engine)是一个针对移动异构计算平 ...
- 小米开源框架MACE 创建模型部署文件
转载自https://www.jianshu.com/p/823f7d7eaf58 文章内容翻译自 MACE 官方手册,记录本人阅读与开发过程,力求不失原意,但推荐阅读原文. https://medi ...
- 小米开源框架MACE 如何构建和使用
转载自https://www.jianshu.com/p/3be518027ac2 文章内容翻译自 MACE 官方手册,记录本人阅读与开发过程,力求不失原意,但推荐阅读原文. https://medi ...
- 开源框架ePump简介
开源框架ePump简介 开发通信系统的程序员对OS系统提供的Socket参数配置.系统调用等接口,普遍都有不胜其烦的感觉,作为通信服务器(TCP.UDP.HTTP等)还需要考虑支撑大并发.大吞吐能力所 ...
- android 动画开源框架,图文简介非常炫酷的Android开源框架之UI框架
架构,其又名软件架构,是关于软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计.而软件架构(software architecture)是一系列相关的抽象模式,其是用来指导大型软件系统各 ...
- 语音识别代码_Povey正式出任小米语音首席科学家,小米移动端框架MACE全面支持Kaldi...
今日,小米开发者大会 MIDC 2019 在北京开幕.语音识别大牛.前霍普金斯大学副教授 Daniel Povey 也正式宣布出任小米集团语音首席科学家,而近日更新的小米移动端深度学习框架 MACE ...
最新文章
- python多个日志模块怎么隔离_在多个模块中使用Python日志logging
- EntityFramework 4.x 使用中遇到的问题 (2)
- 电脑快捷键横屏变竖屏,电脑显示器竖屏横屏来回切换怎么设置
- 时间序列研(part3)--单积性
- 前端学习(3265):js中undefine中3相关属性
- 用python编程输入三角形的三条边判断是否构成三角形_vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题,...
- 一文解读聚类中的两种流行算法
- js操作XML文件兼容IE与FireFox
- ibm服务器操作系统重装步骤,ibm服务器安装 操作系统安装步骤
- raw socket
- 因计算机磁盘硬件的pe,PE缺少AHCI驱动无法识别硬盘更新U盘启动盘中的WINPE
- 数字化转型|利用现代技术和通信手段|改变企业为客户创造价值的方式
- python 建站 上传文件_Python sdk上传
- 堆晶结构_堆晶岩形成条件
- 食物相克表食物最佳搭配
- 【已解决】Windows Service服务 出现System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志。不可访问的日志: Security。
- APQP(advanced product quality planning先期产品质量策划)
- Oracle那些年那些事儿
- 男人,女人一生要过五个关卡【曾仕强】
- Xilinx官网大全__PowerPC 架构