首页 首页 大数据 查看内容

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

木马童年 2019-5-28 06:35 36 0

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

日前,百度在 GitHub 上开源了移动端深度学习框架 mobile-deep-learning(MDL)的全部代码以及脚本,这项研究旨在让卷积神经网络(CNNC)能更简单和高速的部署在移动端,支持iOS GPU,目前已经在百度APP上有所使用。我们将GitHub上的具体内容整理如下:

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

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

展示案例

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

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

iOS-MobileNet:

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

Android-Googlenet:

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

想要了解源码实现可以继续往下看,源码位于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

在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏多智时代,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!

深度学习 卷积神经 二维码
0
为您推荐
大数据技术改变城市的运作方式,智慧城市呼之欲出

大数据技术改变城市的运作方式,智慧城市呼

纽奥良虽像大多数城市一样有火灾侦测器安装计划,但直到最近还是要由市民主动申装。纽…...

大数据分析面临生死边缘,未来之路怎么走?

大数据分析面临生死边缘,未来之路怎么走?

大数据分析开始朝着营销落地,尤其像数果智能这类服务于企业的大数据分析供应商,不仅…...

什么是工业大数据,要通过3B和3C来理解?

什么是工业大数据,要通过3B和3C来理解?

核心提示:工业视角的转变如果说前三次工业革命分别从机械化、规模化、标准化、和自动…...

大数据普及为什么说肥了芯片厂商?

大数据普及为什么说肥了芯片厂商?

科技界默默无闻的存在,芯片行业年规模增长到了3520亿美元。半导体给无人驾驶汽车带来…...

大数据技术有哪些,为什么说云计算能力是大数据的根本!

大数据技术有哪些,为什么说云计算能力是大

历史规律告诉我们,任何一次大型技术革命,早期人们总是高估它的影响,会有一轮一轮的…...

个人征信牌照推迟落地,大数据 重新定义个人信用!!

个人征信牌照推迟落地,大数据 重新定义个

为金融学的基础正日益坚实。通过互联网大数据精准记录海量个人行为,进而形成分析结论…...