小米开源自研移动端深度学习框架MACE

导言android

Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算平台优化的神经网络计算框架。MACE 支持 TensorFlow 和 Caffe 模型,提供转换工具,能够将训练好的模型转换成专有的模型数据文件,同时还能够选择将模型转换成C++代码,支持生成动态库或者静态库,提升模型保密性。git




Mobile AI Compute Engine (MACE) github


Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算平台优化的神经网络计算框架。主要从如下的角度作了专门的优化:算法

  • 性能api

    • 代码通过NEON指令,OpenCL以及Hexagon HVX专门优化,而且采用 Winograd算法来进行卷积操做的加速。 此外,还对启动速度进行了专门的优化。数组

  • 功耗微信

    • 支持芯片的功耗管理,例如ARM的big.LITTLE调度,以及高通Adreno GPU功耗选项。网络

  • 系统响应架构

    • 支持自动拆解长时间的OpenCL计算任务,来保证UI渲染任务可以作到较好的抢占调度, 从而保证系统UI的相应和用户体验。框架

  • 内存占用

    • 经过运用内存依赖分析技术,以及内存复用,减小内存的占用。另外,保持尽可能少的外部 依赖,保证代码尺寸精简。

  • 模型加密与保护

    • 模型保护是重要设计目标之一。支持将模型转换成C++代码,以及关键常量字符混淆,增长逆向的难度。

  • 硬件支持范围

    • 支持高通,联发科,以及松果等系列芯片的CPU,GPU与DSP(目前仅支持Hexagon)计算加速。 同时支持在具备POSIX接口的系统的CPU上运行。


地址:https://github.com/XiaoMi/mace



MACE 文档

连接: https://mace.readthedocs.io/en/latest/

打开MACE 在线文档网页,引入眼帘的是:

  • Getting started

  • Development

  • FAQ



这里简单介绍一下Getting started中的Introduction内容:


移动AI计算引擎(MACE)是一种针对移动异构计算平台优化的深度学习推理框架。 下图显示了总体架构。




模型格式(Model format)


MACE定义了与Caffe2相似的自定义模型格式。MACE模型能够由TensorFlow和Caffe的导出模型转换。YAML文件用于描述模型部署详细信息。在下一章中,有详细的指导说明如何建立这个YAML文件。



模型转换(Model conversion)


目前,咱们为TensorFlow和Caffe提供模型转换器。将来将支持更多框架。


模型加载(Model loading)


MACE模型格式包含两部分:模型图定义和模型参数张量。图形部分使用协议缓冲区进行序列化。全部模型参数张量一块儿链接成一个连续的字节数组,咱们在下面的段落中称这个数组张量数据(array tensor data)。在模型图中,记录张量数据偏移和长度。


模型能够经过3种方式加载:


  1. 模型图和张量数据都是外部动态加载的(默认状况下,来自文件系统,但用户能够自由选择本身的实现,例如,使用压缩或加密)。这种方法提供了最大的灵活性,但倒是最薄弱的模型保护。

  2. 模型图和张量数据都转换为C++代码并经过执行编译的代码加载。这种方法提供了最强大的模型保护和最简单的部署。

  3. 模型图转换为C++代码并构造为第二种方法,张量数据做为第一种方法在外部加载。



MACE Model Zoo

随着MACE一块儿开源的还有MACE Model Zoo项目,目前包含了物体识别,场景语义分割,图像风格化等多个公开模型。

连接: https://github.com/XiaoMi/mace-models

打开上述连接看到下述画面,着实蛮震撼的!这里简单介绍一下部分现有的model:

  • CNN

    • inception-v1-v2-v3

    • resnet-v2-50

    • vgg16

    • mobilenet-v1-v2(轻量级)

    • squeezenet(轻量级)

  • 图像分割

    • deeplab-v3-plus



MACE Demo

MACE 目前还提供了Android的示例程序,你们能够下载编译好的APK文件进行安装,快速感觉一下MACE的魅力。

连接: https://cnbj1.fds.api.xiaomi.com/mace/demo/mace_android_demo.apk


Amusi 这不立刻就下载好,测试感觉一下,下面是测试结果。


Refrigerator



Laptop



Amusi 我的以为识别率通常般,并且是只输出Top1的结果。识别速度嘛,还能够吧,毕竟是魅族Mx6上跑CPU模式。若是换上骁龙845处理器的手机,应该...


如何评价小米开源的移动端深度学习框架MACE?


小米忽然开源了自家的深度学习框架,是否是在为“上市”作准备呢?


让咱们看一下知乎上大佬们怎么看待这个事件?




截止2018-06-29,只有两我的回答了该问题,你们的反映并非很热烈,也许知道这件事情的人很少吧。但 Amusi 以为MACE的出现,仍是一件颇有意义的事情,国内能作深度学习框架开源的公司真很少!


(舒适提示)国内有自研开源深度学习框架的公司有:


小米开源MACE,这绝对是一件很正能量的事情,工业界和学术界都应该鼓励和支持!就如左上角所示,有222位关注者,也说明了你们对这件事情的期待。


连接: https://www.zhihu.com/question/283030623



若喜欢“深度学习与神经网络”推送的文章,请扫描下方二维码关注公众号!



您好,欢迎关注深度学习与神经网络。本公众号会按期推送深度学习的教程以及人工智能最新发展状况。感谢你们的支持!
回复“教程”能够看到最新的深度学习教程。
回复“加群”能够加入深度学习交流群。
投稿或合做请加微信:sdxxqbf

本文分享自微信公众号 - AI MOOC人工智能平台(AIMOOC_XLAB)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索