开发 | 百度开源移动端深度学习框架MDL,可在苹果安卓系统自由切换

AI科技评论消息,日前,百度在 GitHub 上开源了移动端深度学习框架 mobile-deep-learning(MDL)的全部代码以及脚本,这项研究旨在让卷积神经网络(CNNC)能更简单和高速的部署在移动端,支持iOS GPU,目前已经在百度APP上有所使用。

大小:340k+(在arm v7上)

速度:对于 iOS Metal GPU Mobilenet,速度是40ms,对于 Squeezenet,速度是30ms

展示案例

如果想先运行demo或快速使用这个框架,你可以扫下面的二维码安装编译好的apk/ipa文件,不用知道详细的安装细节。

iOS-MobileNet:

Android-Googlenet:

想要了解源码实现可以继续往下看,源码位于examples文件夹里。

执行样例

1、复制项目代码

2、安装apk\ipa文件,或导入到IDE

3、运行

前期准备

  • android端安装NDK
  • 安装Cmake
  • Android端 NDK CMake 文件地址:https://developer.android.google.cn/ndk/guides/cmake.html
  • 安装 Protocol Buffers

使用MDL lib步骤

在OSX或Linux上测试:

# mac or linux: ./build.sh mac cd build/release/x86/build ./mdlTest

使用MDL lib

#android Copy so file to your project. According to the example of writing your code.

#ios The example code is your code.

多线程执行

# After a Net instance in MDL is created, you could set its thread numbers for execution like this. net->set_thread_num(3); # Now MDL is tuned to run in 3 parallel threads.

开发

在android端编译MDL资源

# android: # prerequisite: install ndk from google ./build.sh android cd build/release/armv-v7a/build ./deploy_android.sh adb shell cd /data/local/tmp ./mdlTest

在iOS端编译MDL资源

# ios: # prerequisite: install xcode from apple ./build.sh ios copy ./build/release/ios/build/libmdl-static.a to your iOS project

把caffemodel转换成mdl格式

#Convert model.prototxt and model.caffemodel to model.min.json and data.min.bin that mdl use ./build.sh mac cd ./build/release/x86/tools/build # copy your model.prototxt and model.caffemodel to this path # also need the input data ./caffe2mdl model.prototxt model.caffemodel data # after this command, model.min.json data.min.bin will be created in current # some difference step you need to do if you convert caffe model to iOS GPU format # see this: open iOS/convert/iOSConvertREADME.md

特征

  • 一键部署,可以通过修改参数在iOS和android端之间转换
  • iOS GPU上支持运行 MobileNet和Squeezenet模型
  • 在MobileNet、GoogLeNet v1和Squeezenet模型下都很稳定
  • 占用空间极小(4M),不需要依赖第三方的库
  • 支持从32比特float到8比特unit转化
  • 接下来会与与ARM相关的算法团队进行线上线下沟通,优化ARM平台
  • NEON使用涵盖了所有的卷积、归一化、池化等
  • 利用循环展开,可以让性能更加优化,防止不必要的CPU损失
  • 对于overhead进程,可以转发大量繁重的计算任务

项目地址:https://github.com/baidu/mobile-deep-learning

本文分享自微信公众号 - AI科技评论(aitechtalk)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

学界 | 中科院计算所开源Easy Machine Learning:让机器学习应用开发简单快捷

选自Github 机器之心编译 今日,中科院计算所研究员徐君在微博上宣布「中科院计算所开源了 Easy Machine Learning 系统,其通过交互式图...

36550
来自专栏瓜大三哥

VS2详细设计(二)

DVIIN1_CLK为输入视频源的随路时钟,用于检测分辨率的时钟,行分辨率的检测从视频源的数据有效信号DVIIN1_DE的上升沿开始计数,直到DVIIN1_DE...

12830
来自专栏BGP专栏

BGP电路详解(上)

1.把匹配器件相互靠近放置  (共OD/Poly/OD space/Poly space一致)

32300
来自专栏小小詹同学

知乎大神爬取高颜值美女(Python爬虫+人脸检测+颜值检测)

这是一篇来自知乎大神的技术文章

1.1K100
来自专栏AI研习社

深度学习界的 “吃鸡挂”——目标检测 SSD 实验

“卧槽,又被 LYB 干了!” 背后传来一声哀嚎。 哈哈,看来,沉迷吃鸡的室友又被戒网瘾了。作为一个充满着正义的 LYB 的游戏,这人不长点眼力还真的不行啊。不...

53250
来自专栏机器之心

专栏 | 百度深度学习平台PaddlePaddle框架解析

机器之心专栏 来源:百度PaddlePaddle PaddlePaddle 是 2016 年 8 月底百度开源的深度学习平台,并且在短时间内迅速引发全球开发热度...

43550
来自专栏腾讯移动品质中心TMQ的专栏

腾讯TMQ在线沙龙|测试与图像识别

测试与图像识别 活动时间:2016年3月16日 QQ群视频交流 活动介绍:TMQ在线沙龙第十七期分享 本次分享的主题是:测试与图像识别 共有43位测试小伙伴报名...

31660
来自专栏玩转全栈

机器学习-开门篇之数据获取(一)

机器学习的流程大概分为六个步骤:获取数据,检查数据合理,数据清洗,建模,评估模型,部署。

58360
来自专栏小詹同学

知乎大神爬取高颜值美女(Python爬虫+人脸检测+颜值检测)

这是一篇来自知乎大神的技术文章 ---- 写在前面: 本文作者:邓卓 原文链接:本文转发修改已取得原作者授权 https://zhuanlan.zhihu.c...

97870
来自专栏kangvcar

[face_recognition中文文档] 第1节 人脸识别

85430

扫码关注云+社区

领取腾讯云代金券