深度学习模型移植的移动端框架总结
主流移动端框架总结:
腾讯:ncnn与featurecnn对比,前者开源早,代码、文档完善;后者测试速度略微快一点
小米MACE:刚开源,可能会碰到很多问题
百度MDL:速度比ncnn慢
安卓 cpu类型:ARM,x86
ios cpu类型:ARM
1、 tensorflowLite
文档:TensorFlow Lite | TensorFlow中文官网
2、ncnn(腾讯)
如下是ncnn开源项目负责人nihui的采访:https://juejin.im/entry/599a5e136fb9a024a40430bb
a) 无任何第三方库
b) 纯c++实现,跨平台
c) 汇编级优化,计算速度极快 使用ARM NEON 指令实现卷积层,全连接层,池化层等大部分cnn关键层
d) 支持多核并行运算
e) 可扩展的模型设计,支持 8bit 量化和半精度浮点存储
f) 支持直接内存引用加载网络模型
g) 可注册自定义层实现并扩展
项目地址:GitHub - Tencent/ncnn: ncnn is a high-performance neural network inference framework optimized for the mobile platform
3、MACE(Mobile AI Compute Engine) 小米的开源框架
说明文档:Mobile AI Compute Engine Documentation — MACE documentation
项目地址:GitHub - XiaoMi/mace: MACE is a deep learning inference framework optimized for mobile heterogeneous computing platforms.
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)
项目地址:GitHub - PaddlePaddle/Paddle-Lite: Multi-platform high performance deep learning inference engine (『飞桨』多平台高性能深度学习预测引擎)