【移动端DL框架】当前主流的移动端深度学习框架一览
大家好,繼之前的12大深度學(xué)習(xí)開源框架之后,我們準(zhǔn)備開通新的專欄《移動(dòng)端DL框架》,這是第一篇文章,先來做一個(gè)總體的介紹,更多的細(xì)節(jié)可以關(guān)注以后的文章。
在這個(gè)專欄中,我們會(huì)介紹與移動(dòng)端的模型訓(xùn)練和部署有關(guān)的框架的使用。
作者&編輯 | 言有三
深度學(xué)習(xí)模型要落地,比如要部署到手機(jī)等移動(dòng)端平臺(tái),之前給大家介紹的用于訓(xùn)練的框架就不能直接使用了,我們需要相應(yīng)的移動(dòng)端框架,目前國(guó)內(nèi)外各大公司紛紛開源自家的框架。
?
1 TensorFlow Lite
這是Google在2017年I/O開發(fā)者大會(huì)上開源的將TensorFlow訓(xùn)練好的模型遷移到Android App的框架,地址和一些學(xué)習(xí)資源如下:
TensorFlow Lite使用Android Neural Networks API,默認(rèn)調(diào)用CPU,目前最新的版本已經(jīng)支持GPU。
項(xiàng)目地址和相關(guān)學(xué)習(xí)資源如下。
https://tensorflow.google.cn/lite/
https://github.com/amitshekhariitbhu/Android-TensorFlow-Lite-Example
?
2 Core ML
Core ML是2017年Apple公司在WWDC上與iOS11同時(shí)發(fā)布的移動(dòng)端機(jī)器學(xué)習(xí)框架,底層使用Accelerate和Metal分別調(diào)用CPU和GPU。Core ML需要將你訓(xùn)練好的模型轉(zhuǎn)化為Core ML model,它的使用流程如下:
在一年之后,也就是2018年WWDC上,Apple發(fā)布了Core ML 2,主要改進(jìn)就是通過權(quán)重量化等技術(shù)優(yōu)化模型的大小,使用新的Batch Predict API提高模型的預(yù)測(cè)速度,以及容許開發(fā)人員使用MLCustomLayer定制自己的Core ML模型。
項(xiàng)目地址和相關(guān)學(xué)習(xí)資料如下:
https://developer.apple.com/documentation/coreml
https://github.com/likedan/Awesome-CoreML-Models
?
3 Caffe2
Caffe2是facebook在2017年發(fā)布的一個(gè)跨平臺(tái)的框架,不僅僅支持Windows,Linux,Macos三大桌面系統(tǒng),也支持移動(dòng)端iOS,Android,可以說是集訓(xùn)練和推理于一身。
Caffe2本來就是基于caffe開發(fā)的,Caffe基于C++開發(fā),所以可以很自然地移植到移動(dòng)端,目前Caffe2已經(jīng)全部并入Pytorch。兩者的區(qū)別就是PyTorch是為研究而開發(fā),更加靈活。Caffe2是專為移動(dòng)生產(chǎn)環(huán)境而開發(fā),更加高效。
項(xiàng)目地址以及其相關(guān)的model zoo地址如下。
https://github.com/facebookarchive/caffe2
https://caffe2.ai/docs/zoo.html
https://github.com/caffe2/models
?
4 NCNN
ncnn是2017年騰訊優(yōu)圖實(shí)驗(yàn)室開源的移動(dòng)端框架,使用C++ 實(shí)現(xiàn),支持Android和IOS兩大平臺(tái)。
ncnn已經(jīng)被用于騰訊生態(tài)中的多款產(chǎn)品,包括微信,天天P圖等。
項(xiàng)目地址和相關(guān)學(xué)習(xí)資料如下。
https://github.com/Tencent/ncnn
https://github.com/BUG1989/caffe-int8-convert-tools.git
?
5 Paddle-Mobile
Paddle-Mobile是2017年百度PaddlePaddle組織下的移動(dòng)端深度學(xué)習(xí)開源框架,當(dāng)時(shí)叫做mobile-deep-learning(MDL)。支持安卓和ios平臺(tái),CPU和GPU使用,提供量化工具。
可以直接使用Paddle Fluid訓(xùn)練好的模型,也可以將Caffe模型進(jìn)行轉(zhuǎn)化,或者使用ONNX格式的模型。
項(xiàng)目地址如下:
https://github.com/PaddlePaddle/paddle-mobile
https://github.com/PaddlePaddle/Paddle
?
6 QNNPACK
QNNPACK是Facebook在2018年發(fā)布的int8量化低精度高性能開源框架,全稱Quantized Neural Network PACKage,用于手機(jī)端神經(jīng)網(wǎng)絡(luò)計(jì)算的加速,已經(jīng)被整合到PyTorch 1.0中,在Caffe2里就能直接使用。
這個(gè)框架可以為很多運(yùn)算加速,比如DW卷積 (Depthwise Convolution) ,目前支持的列表如下:
項(xiàng)目地址如下。
https://github.com/pytorch/QNNPACK
?
7 MACE
MACE是2018年小米在開源中國(guó)開源世界高峰論壇中宣布開源的移動(dòng)端框架,以O(shè)penCL和匯編作為底層算子,提供了異構(gòu)加速可以方便在不同的硬件上運(yùn)行模型,同時(shí)支持各種框架的模型轉(zhuǎn)換。
項(xiàng)目地址和相關(guān)學(xué)習(xí)資源如下:
https://github.com/XiaoMi/mace
https://github.com/XiaoMi/mace-models
?
8 MNN
MNN是2019年阿里開源的移動(dòng)端框架,不依賴第三方計(jì)算庫(kù),使用匯編實(shí)現(xiàn)核心運(yùn)算,支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用網(wǎng)絡(luò)。作為后起之秀,自然是吸取了前面開源的這些移動(dòng)端推理框架的所有優(yōu)點(diǎn)。
已經(jīng)用于阿里的淘寶,優(yōu)酷等多個(gè)應(yīng)用,覆蓋短視頻、搜索推薦等場(chǎng)景。
項(xiàng)目地址和學(xué)習(xí)資源如下:
https://github.com/alibaba/MNN
?
9 其他
除了上面這些正式發(fā)布的開源框架,還有一些其他的框架,比如不開源的驍龍的官方SDK SNPE,主要支持自家的DSP、GPU和CPU。比如騰訊另一個(gè)團(tuán)隊(duì)開源的featurecnn。
還有很早就存在的GitHub項(xiàng)目caffe-android-lib,用于將Caffe往移動(dòng)端進(jìn)行移植,其實(shí)各家AILab應(yīng)該自己都會(huì)有一套這樣的工具。
以及caffe量化工具包c(diǎn)affe-int8-convert-tools等。
https://github.com/sh1r0/caffe-android-lib
https://github.com/BUG1989/caffe-int8-convert-tools
這一次先讓大家對(duì)移動(dòng)端的深度學(xué)習(xí)框架有一個(gè)印象,后面我們會(huì)一個(gè)一個(gè)進(jìn)行學(xué)習(xí),敬請(qǐng)期待。
相關(guān)文章:
第一篇:【caffe速成】caffe圖像分類從模型自定義到測(cè)試
第二篇:【tensorflow速成】Tensorflow圖像分類從模型自定義到測(cè)試
第三篇:【pytorch速成】Pytorch圖像分類從模型自定義到測(cè)試
第四篇:【paddlepaddle速成】paddlepaddle圖像分類從模型自定義到測(cè)試
第五篇:【Keras速成】Keras圖像分類從模型自定義到測(cè)試
第六篇:【mxnet速成】mxnet圖像分類從模型自定義到測(cè)試
第七篇:【cntk速成】cntk圖像分類從模型自定義到測(cè)試
第八篇:【chainer速成】chainer圖像分類從模型自定義到測(cè)試
第九篇:【DL4J速成】Deeplearning4j圖像分類從模型自定義到測(cè)試
第十篇:【MatConvnet速成】MatConvnet圖像分類從模型自定義到測(cè)試
第十一篇:【Lasagne速成】Lasagne/Theano圖像分類從模型自定義到測(cè)試
第十二篇:【darknet速成】Darknet圖像分類從模型自定義到測(cè)試
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續(xù)內(nèi)容將會(huì)不定期奉上,歡迎大家關(guān)注有三公眾號(hào) 有三AI!
總結(jié)
以上是生活随笔為你收集整理的【移动端DL框架】当前主流的移动端深度学习框架一览的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【强化学习】强化学习专栏上线,60多篇文
- 下一篇: 【技术综述】深度学习在自然语言处理中的应