深度學習模型移植的移動端框架總結
截止2018年,主流移動端框架總結:
騰訊:ncnn與featurecnn對比,前者開源早,程式碼、文件完善;後者測試速度略微快一點
小米MACE:剛開源,可能會碰到很多問題
百度MDL:速度比ncnn慢
安卓 cpu型別:ARM,x86
ios cpu型別:ARM
1、 tensorflowLite
文件:https://tensorflow.google.cn/lite/
2、ncnn(騰訊)
如下是ncnn開源專案負責人nihui的採訪:https://juejin.im/entry/599a5e136fb9a024a40430bb
a) 無任何第三方庫
b) 純c++實現,跨平臺
c) 彙編級優化,計算速度極快 使用ARM NEON 指令實現卷積層,全連線層,池化層等大部分cnn關鍵層
d) 支援多核並行運算
e) 可擴充套件的模型設計,支援 8bit 量化和半精度浮點儲存
f) 支援直接記憶體引用載入網路模型
g) 可註冊自定義層實現並擴充套件
專案地址:https://github.com/Tencent/ncnn
3、MACE(Mobile AI Compute Engine ) 小米的開源框架
說明文件:https://mace.readthedocs.io/en/latest/
專案地址:https://github.com/xiaomi/mace
mdl、ncnn和tflite的對比:
相同點:
a. 只含推理(inference)功能,使用的模型檔案需要通過離線的方式訓練得到。
b. 最終生成的庫尺寸較小,均小於500kB。
c. 為了提升執行速度,都使用了ARM NEON指令進行加速。
d. 跨平臺,iOS和Android系統都支援。
不同點:
a. MDL和NCNN均是隻支援Caffe框架生成的模型檔案,而TfLite則只支援自家大哥TensorFlow框架生成的模型檔案。
b. MDL支援利用iOS系統的Matal框架進行GPU加速,能夠顯著提升在iPhone上的執行速度,達到準實時的效果。而NCNN和TFLite還沒有這個功能
4、paddle-mobile (百度)(老版稱MDL)
專案地址:https://github.com/PaddlePaddle/paddle-mobile