深度学习模型移植的移动端框架总结
截止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