开发 | 百度开源移动端深度学习框架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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开源FPGA

基于FPGA的HDMI高清显示接口驱动

  本站点博客将逐步迁移至http://ninghechuanblogs.cn/   HDMI是(High Definition Multimedia Inte...

4719
来自专栏小小詹同学

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

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

66310
来自专栏kangvcar

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

2972
来自专栏AI研习社

Facebook 发布 wav2letter 工具包,用于端到端自动语音识别

AI 研习社消息,日前, Facebook 人工智能研究院发布 wav2letter 工具包,它是一个简单高效的端到端自动语音识别(ASR)系统,实现了 Wav...

3835
来自专栏AI研习社

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

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

4515
来自专栏何俊林

FFmpeg总结(一)FFmpeg官方文档分块

正式开启FFmpeg总结,预计这个将是一个2-3年的时间线,或者更久,今天是从官方文档出发,带大家找到最小块的切入点。 http://ffmpeg.org/d...

2467
来自专栏瓜大三哥

VS2详细设计(二)

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

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

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

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

2116
来自专栏AI研习社

谷歌发布 TensorFlow 1.5,全面支持动态图机制和 TensorFlow Lite

AI 研习社消息,日前,谷歌发布 TensorFlow 1.5,TensorFlow 又一次迎来更新。 在此前的版本中,TensorFlow 迎来三大重大变化:...

2894
来自专栏小詹同学

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

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

6567

扫码关注云+社区