MACE 是小米公司自研的移动端深度学习框架 Mobile AI Compute Engine,2017年12月15日于公司内部正式发布。2018年6月28日,在“2018(第十三届)开源中国开源世界高峰论坛”上,小米公司人工智能与云平台副总裁崔宝秋博士宣布开源 MACE,赋能中国 AI 产业,以期推动移动端深度学习的发展。

资料

官方手册:https://buildmedia.readthedocs.org/media/pdf/mace/latest/mace.pdf

开源github地址:https://github.com/XiaoMi/mace.git

mace模型库地址:https://github.com/XiaoMi/mace-models.git

LOGO:

架构:

简单总结一下:

1.MACE定义了自己的模型格式,提供工具将各类开源模型转为MACE格式。

2.MACE interpreter是用来解释图的。

3.后端支持DSP,CPU,GPU用来对算子加速,和某单位对我们提出的算子层API一个层面的意思。
GITHUB中的后端代码目录如下:

部署思路大同小异,不过多解释:

MACE SDK的组织方式:

模型格式

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)。应该就是类似于darknet那种模型结构和模型权重分开存储的方式,darknet的权重文件也是一个连续的字节数组。

模型可以通过3种方式进行加载:

  1. model graph 和 tensor data 均在外部动态加载(默认情况下,从文件系统加载,但是用户可以自由选择一些实现方式,例如压缩或加密)。这种方式具有最大的灵活性但是模型的保护性最差。

  2. model graph 和 tensor data 转换成 C++ 代码并通过执行编译后的代码进行加载。这种方式提供了最强的模型保护措施,是最简单的部署方式。

  3. model graph 按照方式 2 一样被转换成 C++ 代码,tensor data 按照方式 1 进行外部加载。

结束!

小米AI推理框架MACE介绍相关推荐

  1. 【先楫HPM6750系列】移植轻量级AI推理框架——TinyMaix

    [先楫HPM6750系列]移植轻量级AI推理框架--TinyMaix 文章目录 [先楫HPM6750系列]移植轻量级AI推理框架--TinyMaix 一.TinyMaix是什么? 二.TinyMaix ...

  2. 语音识别代码_Povey正式出任小米语音首席科学家,小米移动端框架MACE全面支持Kaldi...

    今日,小米开发者大会 MIDC 2019 在北京开幕.语音识别大牛.前霍普金斯大学副教授 Daniel Povey 也正式宣布出任小米集团语音首席科学家,而近日更新的小米移动端深度学习框架 MACE ...

  3. 阿里MNN推理框架相关介绍

    一.参考资料 MNN官网 中文文档-语雀 欢迎使用MNN文档 - MNN-Doc 2.1.1 documentation) 英文文档 MNN知识库 MNN 官方仓库 二.相关介绍 1. MNN简介 M ...

  4. 深度学习推理框架调研总结

    深度学习推理框架 作者介绍 1.移动端深度学习推理框架调研 1.1 小米的MACE(2017) 1.2 阿里的MNN 1.3 腾讯的TNN 1.4 ARM的tengine 1.5 百度的paddle- ...

  5. 超轻量AI推理引擎MindSpore Lite新版本发布,支撑HMS Core AI领域全面升级

    华为在20年9月份开源了MindSpore Lite 1.0.0版本之后,其接口易用性.算子性能与完备度.第三方模型的广泛支持等方面,得到了众多手机应用开发者的广泛认可.MindSpore Lite为 ...

  6. 小米开源AI框架mace编译构建

    目录 简介 环境要求 1 安装 Bazel 2 安装Android NDK 3 在Ubuntu16.04下安装Docker(17.09) 构建并运行示例模型 1 拉取MACE项目 2 拉取MACE M ...

  7. 小米开源框架MACE 简介

    转载自 https://www.jianshu.com/p/2ab68779d05b 前言 MACE 是小米公司自研的移动端深度学习框架 Mobile AI Compute Engine,2017年1 ...

  8. 小米开源框架MACE 源码阅读笔记 1

    转载自 https://www.jianshu.com/p/7061fd67d419 前扯 在前不久的某高峰论坛上,小米开源了其移动端的深度学习框架Mobile AI Compute Engine(M ...

  9. 小米开源框架MACE - 源码阅读笔记一

    首先先一目了然看一下其目录结构(这些个源码可以在github上下载到,只要在GitHub搜索mace即可): 介绍 MACE(Mobile AI Compute Engine)是一个针对移动异构计算平 ...

最新文章

  1. 记录层序遍历中每层右侧第一个数字 Binary Tree Right Side View
  2. mybatis实现反向工程
  3. python 前端学习_python学习之路7 前端学习3
  4. windows下同时安装python2与python3
  5. VS2019 使用 C/C++ 动态链接库 并 进行调用
  6. HTML+CSS+JS实现 ❤️基于Javascript简单计算器特效❤️
  7. Sort List[leetcode] 由归并排序的递归和循环,到本题的两种解法
  8. Jboss 安全和优化
  9. Java实训项目7:GUI学生信息管理系统 - 实现步骤 - 创建实体类
  10. async python_Async Python 竟不比sync Python 快,怎么回事?
  11. ViewPager 简单实现左右无限滑动.
  12. linux删除文件后不释放磁盘的问题
  13. 解决ubuntu 16.04下wiznote不能输入中文的问题
  14. wilcoxon符号秩检验matlab,符号检验和wilcoxon符号秩检验的区别
  15. Flash Builder 的概要分析
  16. 拼多多如何拉到足够的人去砍价,砍成一台iPhone12需要多少人?
  17. excel流程图折线箭头_如何绘制excel箭头图形
  18. Ubuntu虚拟机全屏问题
  19. 使用Scrum敏捷开发 —实现多维度碎片化迭代
  20. 安卓生成keystore文件

热门文章

  1. OTP一次性动态密码工具Java实现
  2. PHP大型电商网站秒杀思路
  3. c++11 智能指针 (std::unique_ptr)(六)
  4. RabbitMQ问题系列:(一)
  5. python交互模式_python怎么用交互式模式
  6. 素数判断入门201808
  7. 【译】我这两年做过的小微项目
  8. 手机开机启动慢是什么原因_电脑启动慢是什么原因
  9. 此情可待成追忆——九山顶畅游随想曲(五)
  10. cadence 常见pcb电阻_三款常用PCB设计软件Altium Designer,Allegro SPB,PADS综合比较