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