爱吧机器人网 » 技术 > 机器学习 > 正文

小米开源移动端深度学习框架MACE:可转换TensorFlow模型

核心提示:选自GitHub机器之心编译参与:蒋思源、李亚洲6 月 28 日,小米首席架构师,人工智能与云平台副总裁崔宝秋在 2018(第十三届)开源中国

选自GitHub

机器之心编译

参与:蒋思源、李亚洲

6 月 28 日,小米首席架构师,人工智能与云平台副总裁崔宝秋在 2018(第十三届)开源中国开源世界高峰论坛上宣布,正式开源小米移动端深度学习框架 MACE。该框架采用与 Caffe2 类似的描述文件定义模型,因此它能非常便捷地部署移动端应用。
 
小米开源移动端深度学习框架MACE:可转换TensorFlow模型
项目地址:https://github.com/XiaoMi/mace

文档地址:https://mace.readthedocs.io/en/latest/

Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算平台优化的神经网络计算框架。目前该框架为 TensorFlow 和 Caffe 模型提供转换工具,并且其它框架定义的模型很快也能得到支持。下图展示了该计算框架的整体结构:

小米开源移动端深度学习框架MACE:可转换TensorFlow模型
据 Github 项目介绍,小米的 MACE 主要从以下的角度做了专门的优化:

  • 性能:代码经过 NEON 指令,OpenCL 以及 Hexagon HVX 专门优化,并且采用 Winograd 算法来进行卷积操作的加速。此外,还对启动速度进行了专门的优化。
  • 功耗:支持芯片的功耗管理,例如 ARM 的 big.LITTLE 调度,以及高通 Adreno GPU 功耗选项。
  • 系统响应:支持自动拆解长时间的 OpenCL 计算任务,来保证 UI 渲染任务能够做到较好的抢占调度,从而保证系统 UI 的相应和用户体验。
  • 内存占用:通过运用内存依赖分析技术,以及内存复用,减少内存的占用。另外,保持尽量少的外部 依赖,保证代码尺寸精简。
  • 模型加密与保护:模型保护是重要设计目标之一。支持将模型转换成 C++代码,以及关键常量字符混淆,增加逆向的难度。
  • 硬件支持范围:支持高通,联发科,以及松果等系列芯片的 CPU,GPU 与 DSP(目前仅支持 Hexagon) 计算加速。同时支持在具有 POSIX 接口的系统的 CPU 上运行。
模型格式

MACE 定义的定制化模型格式与 Caffe2 的类似,MACE 模型能由 TensorFlow 和 Caffe 输出的模型转化。YAML 文件详细描述了模型部署细节,后文将展示该文件的示例。

模型加载

MACE 模型格式包含两部分:定义模型的计算图和模型参数张量。计算图部分利用 Protocol Buffers 做序列化,而所有的模型参数张量级联在一起成为一个连续字节数组,我们称这个数组为张量数据。在模型图中,张量数据的偏移(offsets)和长度都会被记录下来。

可用以下三种方式加载模型:

  1. 模型计算图和张量数据都通过外部动态地加载(默认从文件系统加载,但用户可以自由选择它们的实现,例如使用压缩或加密)。这种方式提供最灵活的模型部署方式,但是模型安全也是最低的。
  2. 模型计算图和张量数据都转化为 C++代码,并通过执行经编译的代码而加载。这种方式能提供最强的模型防护和最简单的部署。
  3. 将模型计算图转换为 C++代码,并以第二种方式构建,而张量数据将在外部以第一种方式加载。
部署文件示例

部署模型到移动端的第一步就是创建 YAML 文件,该 YAML 文件描述了模型部署的情况,每一个文件都将生成一个静态库(如果指定了多个 ABIs,那么每个都会有一个静态库)。部署文件可以包含一个或多个模型,例如智能相机应用可能包含人脸识别、目标识别和语音识别模型,它们可以在一个部署文件中定义。

以下展示了用于安卓示例应用的部署文件:

# The name of librarylibrary_name: mobilenettarget_abis: [arm64-v8a]embed_model_data: 1# The build mode for model(s).# 'code' stand for transfer model(s) into cpp code, 'proto' for model(s) in protobuf file(s).build_type: codelinkshared: 0# One yaml config file can contain multi models' config message.models: mobilenet_v1: # model tag, which will be used in model loading and must be specific. platform: tensorflow # support local path, http:// and https:// model_file_path: https://cnbj1.fds.api.xiaomi.com/mace/miai-models/mobilenet-v1/mobilenet-v1-1.0.pb model_sha256_checksum: 71b10f540ece33c49a7b51f5d4095fc9bd78ce46ebf0300487b2ee23d71294e6 subgraphs: - input_tensors: input input_shapes: 1,224,224,3 output_tensors: MobilenetV1/Predictions/Reshape_1 output_shapes: 1,1001 runtime: cpu+gpu limit_opencl_kernel_time: 0 nnlib_graph_mode: 0 obfuscate: 0 winograd: 0 mobilenet_v2: platform: tensorflow model_file_path: https://cnbj1.fds.api.xiaomi.com/mace/miai-models/mobilenet-v2/mobilenet-v2-1.0.pb model_sha256_checksum: 369f9a5f38f3c15b4311c1c84c032ce868da9f371b5f78c13d3ea3c537389bb4 subgraphs: - input_tensors: input input_shapes: 1,224,224,3 output_tensors: MobilenetV2/Predictions/Reshape_1 output_shapes: 1,1001 runtime: cpu+gpu limit_opencl_kernel_time: 0 nnlib_graph_mode: 0 obfuscate: 0 winograd: 0}模型与性能评测

MACE Model Zoo 包含若干常用模型,不仅包括 MobileNet、SqueezeNet、ResNet-50 和 Inception-v3 等常见的卷积神经网络,同时还有风格迁移等应用。MACE Model Zoo 会对一组手机进行每日构建,最新的性能评测结果可以从项目的持续集成页面获取。


上一篇:从基础概念到数学公式,这是一份520页的机器学习笔记(图文并茂)
下一篇:成功构建一个机器学习模型需避免这9个错误

本周栏目热点

期待已久的Ubuntu 18.04 LTS正式发布 适用于机器学习

[2018-04-27]  Canonical于伦敦时间26日正式发布了Ubuntu 18 04 LTS版,Canonical的CEO称,Ubuntu 18 04 LTS在云计算领域效率极高,特别适用于机器学习这样的存储密集型和计算密集型任务。...

关于应用机器学习作为搜索问题的入门简介

[2018-01-03]  机器学习的应用可以理解为一个搜索问题,即根据某个项目的已知信息和可获取的资源,找到从输入到输出的最好的映射。在本文你即将看到把应用机器学习当作搜索问题的概念...

[2016-02-24]     伊隆·马斯克、史蒂芬·霍金和比尔·盖茨都曾多次警告称,快速发展的人工智 ...

工业机器人四种编程技术

[2017-07-05]  在线示教编程通常由操作人员通过示教盒控制机械手工具末端到达指定的姿态和位置,记录机器人位姿数据并编写机器人运动指令,完成机器人在正常加工中的轨迹规划、位姿等关节数......

解放人类的双手 机器人尝试自主学习抓取物体

[2017-05-27]  98%的情况下机器人抓取都是成功的。训练机器人如何在不掉落的情况下抓住各种物体,通常需要大量的练习。不过,加州大学伯克利分校和西门子 ...

精选推荐

比利时研发出可以自我愈合伤口的软体机器人
比利时研发出可以自我愈合伤口的软体机器人

[2017-09-03]  软体机器人是机器人技术的新兴领域; 他们“可以与人类相互作用,而不会杀死他们,并拿起像西红柿这样柔软的物体。” 从长远来看,布鲁塞尔大学队伍正在努力创建一个类似的材......

通过对抗性图像黑入大脑
通过对抗性图像黑入大脑

[2018-03-02]  在上面的图片中,左边是一张猫的照片。在右边,你能分辨出它是同一只猫的图片,还是一张看起来相似的狗的图片?这两张图片之间的区别在于, ...

这些人型机器人是如此真实,你的肉眼几乎无法区分
这些人型机器人是如此真实,你的肉眼几乎无法区分

[2017-09-03]   我们生活在一个区分现实与幻想变得越来越困难的世界。由于机器人技术的进步,创造人工的人类正在逐渐接近完美的最终目标。我们现在看到的机器人不再只是一块发光二极管,......

苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展
苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展

[2017-12-11]  苹果隐秘的自动驾驶汽车项目多年来一直在转移焦点,但今年似乎正在加速。 4月份,公司获得了在加利福尼亚州进行自动驾驶汽车测试的许可证,而在6月份,苹果公司首席执行官库......

助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出
助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出

[2017-12-25]  本文提出了一个大型的、长序列的、用于行人重识别的视频数据集,简称LVreID。与现有的同类数据集相比,该数据集具有以下特点:1)长序列:平均每段视频序列长为200帧,包含丰......

2018年企业数字化转型的五大趋势
2018年企业数字化转型的五大趋势

[2017-12-16]  据2016年哈佛商学院研究表明,选择进行数字化转型的企业在3年内表现出了55%的平均毛利润提升,相比之下其他企业毛利润同期降低了37%。数字化转型企业的领头羊,也曾是收入处于......

农业将为高科技行业 农业机器人的应用领域
农业将为高科技行业 农业机器人的应用领域

[2017-12-17]  农业正在迅速成为一个令人兴奋的高科技产业,吸引了新专业人士,新公司和新投资者。技术发展迅速,不仅提高了农民的生产能力,而且促进了我们所知道的机器人和自动化技术的发展。...

2022年全球工业机器人市场将达到790亿美元
2022年全球工业机器人市场将达到790亿美元

[2017-09-04]  预计到 2022年, 全球工业机器人市场将达到790亿美元, 并在预测期内登记11 5% 的复合年增长率。随着发展中国家中小型企业需求的不断增长, 采用自动化技术以确保生产质量......