作者:无用
QQ:929994365
MACE
目录
介绍
环境搭建
实例运行
一、简介(Introduction)
MACE(移动AI计算引擎)是一种针对移动异构计算平台优化的深度学习推理框架。MACE覆盖了常见的移动端计算设备(CPU,GPU和DSP),并且提供了完整的工具链和文档,帮助用户将深度学习模型部署到手机,平板电脑,个人电脑和物联网设备。MACE已经在小米内部广泛使用并且被充分验证具有业界领先的性能和稳定性。
框架(Architecture)
上图描述了MACE的基本框架。
1. MACE Model
MACE定义了自有的模型格式(类似于Caffe2),通过MACE提供的工具可以将Caffe和TensorFlow的模型 转为MACE模型。
2. MACE Interpreter
MACE Interpreter主要负责解析运行神经网络图(DAG)并管理网络中的Tensors。
3. Run Time
CPU/GPU/DSP Runtime对应于各个计算设备的算子实现。
使用流程
1. 配置模型部署文件(model.yml)
模型部署文件详细描述了需要部署的模型以及生成库的信息,MACE根据该文件最终生成对应的库文件。
2. 编译MACE库
编译MACE的静态库或者动态库。
3. 模型转换
将TensorFlow 或者 Caffe的模型转为MACE的模型。
4.1 部署
根据不同使用目的集成Build阶段生成的库文件,然后调用MACE相应的接口执行模型。
4.2 命令行运行
MACE提供了命令行工具,可以在命令行运行模型,可以用来测试模型运行时间,内存占用和正确性。
4.3 Benchmark
MACE提供了命令行benchmark工具,可以细粒度的查看模型中所涉及的所有算子的运行时间。
总结
以上步骤是基于官方文档,以下为博主理解:最初我们设计算法为python文件(model.py)训练完成后生成model.pb模型文件。再将model.pb文件部署在model.yml文件中,之后经过编译转换将model.yml文件经过converter.py转换生成库文件。最终进入第四步按需求去调用这些库文件即可。
二、环境搭建
环境要求:本文基于Ubuntu 16.04搭建,所需安装的软件主要包括docker,bazel和Android jdk,以及python的依赖库,Cmake在构建工程时候Android stdio会自动更新下载。当这些所需的库安装好后便可以在MACE官方pull mace镜像了。
下图为所需的依赖库:
1. 在Ubuntu16.04下安装Docker(17.09)
1.1 安装docker:sudo apt-get install docker.io
1.2 检查版本: docker version 当出现client和service表面安装成功
1.3 启动docker:systemctl start docker.service
1.4 更新docker
1.需要使用apt-get来升级,借助阿里的docker-ce源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
2.sudo apt-get update
3.搜索源
apt-cache mad