在這個專欄中,我們會介紹與移動端的模型訓(xùn)練和部署有關(guān)的框架的使用。
作者&編輯 | 言有三
深度學(xué)習(xí)模型要落地,比如要部署到手機等移動端平臺,之前給大家介紹的用于訓(xùn)練的框架就不能直接使用了,我們需要相應(yīng)的移動端框架,目前國內(nèi)外各大公司紛紛開源自家的框架。
1 TensorFlow Lite
這是Google在2017年I/O開發(fā)者大會上開源的將TensorFlow訓(xùn)練好的模型遷移到Android App的框架,地址和一些學(xué)習(xí)資源如下:
TensorFlow Lite使用Android Neural Networks API,默認調(diào)用CPU,目前最新的版本已經(jīng)支持GPU。
項目地址和相關(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同時發(fā)布的移動端機器學(xué)習(xí)框架,底層使用Accelerate和Metal分別調(diào)用CPU和GPU。Core ML需要將你訓(xùn)練好的模型轉(zhuǎn)化為Core ML model,它的使用流程如下:
在一年之后,也就是2018年WWDC上,Apple發(fā)布了Core ML 2,主要改進就是通過權(quán)重量化等技術(shù)優(yōu)化模型的大小,使用新的Batch Predict API提高模型的預(yù)測速度,以及容許開發(fā)人員使用MLCustomLayer定制自己的Core ML模型。
項目地址和相關(guān)學(xué)習(xí)資料如下:
https://developer.apple.com/documentation/coreml
https://github.com/likedan/Awesome-CoreML-Models
3 Caffe2
Caffe2是facebook在2017年發(fā)布的一個跨平臺的框架,不僅僅支持Windows,Linux,Macos三大桌面系統(tǒng),也支持移動端iOS,Android,可以說是集訓(xùn)練和推理于一身。
Caffe2本來就是基于caffe開發(fā)的,Caffe基于C++開發(fā),所以可以很自然地移植到移動端,目前Caffe2已經(jīng)全部并入Pytorch。兩者的區(qū)別就是PyTorch是為研究而開發(fā),更加靈活。Caffe2是專為移動生產(chǎn)環(huán)境而開發(fā),更加高效。
項目地址以及其相關(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)圖實驗室開源的移動端框架,使用C++ 實現(xiàn),支持Android和IOS兩大平臺。
ncnn已經(jīng)被用于騰訊生態(tài)中的多款產(chǎn)品,包括微信,天天P圖等。
項目地址和相關(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組織下的移動端深度學(xué)習(xí)開源框架,當(dāng)時叫做mobile-deep-learning(MDL)。支持安卓和ios平臺,CPU和GPU使用,提供量化工具。
可以直接使用Paddle Fluid訓(xùn)練好的模型,也可以將Caffe模型進行轉(zhuǎn)化,或者使用ONNX格式的模型。
項目地址如下:
https://github.com/PaddlePaddle/paddle-mobile
https://github.com/PaddlePaddle/Paddle
6 QNNPACK
QNNPACK是Facebook在2018年發(fā)布的int8量化低精度高性能開源框架,全稱Quantized Neural Network PACKage,用于手機端神經(jīng)網(wǎng)絡(luò)計算的加速,已經(jīng)被整合到PyTorch 1.0中,在Caffe2里就能直接使用。
這個框架可以為很多運算加速,比如DW卷積 (Depthwise Convolution) ,目前支持的列表如下:
項目地址如下。
https://github.com/pytorch/QNNPACK
7 MACE
MACE是2018年小米在開源中國開源世界高峰論壇中宣布開源的移動端框架,以O(shè)penCL和匯編作為底層算子,提供了異構(gòu)加速可以方便在不同的硬件上運行模型,同時支持各種框架的模型轉(zhuǎn)換。
項目地址和相關(guān)學(xué)習(xí)資源如下:
https://github.com/XiaoMi/mace
https://github.com/XiaoMi/mace-models
8 MNN
MNN是2019年阿里開源的移動端框架,不依賴第三方計算庫,使用匯編實現(xiàn)核心運算,支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用網(wǎng)絡(luò)。作為后起之秀,自然是吸取了前面開源的這些移動端推理框架的所有優(yōu)點。
已經(jīng)用于阿里的淘寶,優(yōu)酷等多個應(yīng)用,覆蓋短視頻、搜索推薦等場景。
項目地址和學(xué)習(xí)資源如下:
https://github.com/alibaba/MNN
9 其他
除了上面這些正式發(fā)布的開源框架,還有一些其他的資源。比如不開源的驍龍的官方SDK SNPE,主要支持自家的DSP、GPU和CPU。
還有很早就存在的GitHub項目caffe-android-lib,用于將Caffe往移動端進行移植,其實各家AILab應(yīng)該自己都會有一套這樣的工具。
以及caffe量化工具包caffe-int8-convert-tools等。
https://github.com/sh1r0/caffe-android-lib
https://github.com/BUG1989/caffe-int8-convert-tools
這一次先讓大家對移動端的深度學(xué)習(xí)框架有一個印象,后面我們會一個一個進行學(xué)習(xí),敬請期待。
春季劃報名倒計時“5天”
有三AI紀(jì)念版撲克牌發(fā)售中
直播預(yù)告
今日知識匯總
今日看圖猜技術(shù)
有三AI生態(tài)
轉(zhuǎn)載文章請后臺聯(lián)系
侵權(quán)必究