小米AI推理框架MACE介绍

article/2025/9/15 17:31:01

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 进行外部加载。

结束!


http://chatgpt.dhexx.cn/article/COMvH5sm.shtml

相关文章

MACE 使用笔记

环境安装 tensorflow 安装,一直不太想用mace的部分原因是不支持tensorflow2.模型, 但为了GPU(OpenCL)还是要用啊。 Shell set -e 学习笔记: shell 中的 set -e , set e 用法_滴水成川-CSDN博客_linux set-eset -eset命令的-e参…

小米开源框架MACE 简介

转载自 https://www.jianshu.com/p/2ab68779d05b 前言 MACE 是小米公司自研的移动端深度学习框架 Mobile AI Compute Engine,2017年12月15日于公司内部正式发布。2018年6月28日,在“2018(第十三届)开源中国开源世界高峰论坛”上…

MACE(1)-----环境搭建

学习MACE也有一个月了,将其划分三步来学习。本文是MACE学习的第一步即MACE环境的搭建。之后还有两步mace的编译和mace工程化。 MACE(2)-----模型编译:https://www.cnblogs.com/missidiot/p/9509831.html MACE(3)-----工程化:https://www.cnbl…

JDK , Tomcat , Eclipse 版本对应关系

1. JDK , Tomcat 版本对应关系 参考网址 : https://tomcat.apache.org/whichversion.html 2. JDK , Eclipse 版本对应关系 参考网址 : https://wiki.eclipse.org/Eclipse/Installation 作者 Github : tojohnonly , 博客 : EnskDeCode

如何查看eclipse的版本

阅读数:20254 转载文章,原文地址:https://blog.csdn.net/duqian94/article/details/52386076 由于作者已经写的很清楚了,就没有做修改直接转载过来了。 本篇文章主要讲解的是三种查看eclipse版本的方法(超详细&#xf…

Eclipse各版本有什么区别?

一直以来对eclipse这个IDE的各发行版本都弄不清楚,今天做一个梳理和记录。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环境插件(JDT),插件开发环境(PDE&#xff0…

超方便插件lombok的使用(eclipse版本)

1 准备 下载地址: 链接:https://pan.baidu.com/s/1Qoy2VRoERqZcgsOVYl3mZQ 提取码:2chx 2.安装 点击 或者找到对应的lombok文件所在目录执行java -jar lombok(1).jar 会自动扫描eclipse所以目录,也可以自己选择点击"S…

查看Eclipse版本号及各个版本区别

1. 找到eclipse安装目录 2. 进入readme文件夹,打开readme_eclipse.html 3. readme_eclipse.html呈现的第二行即数字版本号,如: Eclipse Project Release Notes Release 4.2.0 Last revised June 8th, 2012 附:Eclipse各个版本简介…

安装两个Eclipse 版本不一致,高版本无法打开

Could not create the Java Virtual Machine,A fatal exception has occurred。 首先删除了 工作空间的配置 然后删除掉C:\Windows\System32 里面的三个java文件 java.exe javas.exe javaw.exe 配置好环境变量就好了

eclipse选择java版本_使用 Eclipse 开发版本选择和下载说明

现在越来越多的人开发使用 IDEA,使用 Eclipse 开发的已经渐渐变少了,这篇就简单介绍下 Eclipse 的版本选择和下载,供目前还在坚守使用 Eclipse 开发的同胞们~ Eclipse 简介 Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,…

解决pydev与eclipse版本问题

eclipsepydevanaconda版本问题方法: 在eclipse安装pydev插件时,会遇见安装后在“Preference”不显示“pydev”现象,原因:下载的pydev版本与eclipse版本不匹配,导致无法使用,经过反复调试,发现官…

Eclipse版本升级(2020-12)

文章目录 Eclipse版本升级(2020-12)内置工具栏安装本地安装包安装 Eclipse版本升级(2020-12) Eclipse内安装软件通常会通过内置软件安装方式或者是自己下载安装包方式安装。同样,Eclipse版本升级也可以用这两种方式。…

Eclipse版本对应的jdk需求及查看eclipse的java版本怎么看Eclipse需要安装哪个版本jdk

1)找到eclipse安装目录。 2)进入readme文件夹,打开readme_eclipse.html。 Eclipse软件 jdk及种操作方法 自行百度网盘提取 链接:https://pan.baidu.com/s/1JEYq4Lo8aEms7ClPIchLsA?pwddt4z 提取码:dt4z 我先给一个我翻译过的图&#x…

Eclipse版本号及各个版本区别

附:Eclipse各个版本简介(http://zh.wikipedia.org/wiki/Eclipse) 从2006年起,Eclipse基金会每年都会安排同步发布(simultaneous release)。同步发布主要在6月进行,并且会在接下来的9月及2月释放…

如何更新Eclipse版本

Eclipse用久了上面会集成了使用者长久以来集成的开发插件,如何更新Eclipse并且将这些插件带到下一个版本是本文主要介绍的内容。 此外,升级Eclipse版本的好处还在于更好的支持新版JDK的特性,如JDK8的Lambda语法,以及对高版本Tomcat的配置支持,还有minimap视图支持…

Eclipse 版本升级记录

前言 Eclipse 不是不能在线升级,至少没有找对方法,下面就让我来一步一步带你学会它、使用它吧! 一、概念 Eclipse主要分为两个概念,一个是在线升级 Eclipse 新版本,另一个是在线升级 Eclipse 插件,这两个是有很大区…

Eclipse版本与jdk对应版本等信息

最近整理了一下Java学习的准备基础工作,每次用的时候都要重新找一遍比较麻烦,就先把目前的资料连接备份一下,方便自己参考取用。 1、Eclipse官方网站: Enabling Open Innovation & Collaboration | The Eclipse Foundationh…

Eclipse各版本代号一览表以及官网上有很多版本的eclipse,下载哪个版本比较合适呢?

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环境插件&#xff08…

架构问题--削峰填谷

削峰填谷 瞬时集中突发性的流量在系统中是很常见的问题,在系统的架构中需要针对相关的业务场景做良好的设计;不仅维护系统的稳定,还能很好的解决业务问题,提高并发性能。削峰填谷是在应对突发性流量的时候最常用的设计思想。 问题…

PMP知识点2

根据PMBOK和参考书籍自己总结的一些不熟悉知识点,当做笔记放这复习。 1. 估算方法对比 方法说明使用情景类比估算历史估算无详细信息,或者有类似项目,要少钱,要快参数估算数学模型有数据三点估算三角/贝塔分布更精确自下而上估算…