移动端深度学习开源框架及部署有哪些选择?

摘要:TensorFlow Lite 开源企业:谷歌 GitHub地址:https:github.comtensorflowtflite-micro TensorFlow Lite for Microcontrollers&amp
TensorFlow Lite 开源企业:谷歌    GitHub地址:https://github.com/tensorflow/tflite-micro   TensorFlow Lite for Microcontrollers是TensorFlow Lite的实验端口,旨在在只有千字节内存的微控制器和其他设备上运行机器学习模型。它不需要操作系统支持,任何标准C或C ++库或动态内存分配。 Arm Cortex M3的核心运行时大小为16 KB,并且有足够的运算符来运行语音关键字检测模型,总共需要22 KB。有示例应用程序演示了如何将微控制器用于任务,包括唤醒字检测,来自加速度计数据的手势分类以及使用相机数据的图像分类。轻量级的设计使得它在如Arduino Nano 33 BLE Sense的一些小芯片上也能够部署。 NCNN 开源企业:腾讯 GitHub地址:https://github.com/Tencent/ncnn   ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。ncnn 目前已在腾讯多款应用中使用,如 QQ,Qzone,微信,天天P图等。 功能概述 支持卷积神经网络,支持多输入和多分支结构,可计算部分分支 无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架 纯 C++ 实现,跨平台,支持 android ios 等 ARM NEON 汇编级良心优化,计算速度极快 精细的内存管理和数据结构设计,内存占用极低 支持多核并行计算加速,ARM big.LITTLE cpu 调度优化 支持基于全新低消耗的 vulkan api GPU 加速 整体库体积小于 700K,并可轻松精简到小于 300K 可扩展的模型设计,支持 8bit 量化和半精度浮点存储,可导入 caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir) 模型 支持直接内存零拷贝引用加载网络模型 可注册自定义层实现并扩展 MNN 开源企业:阿里巴巴 GitHub地址:https://github.com/PaddlePaddle/Paddle-Lite   MNN(Mobile Nrural Network)是一个高效、轻量的深度学习框架。它支持深度模型推理与训练,尤其在端侧的推理与训练性能在业界处于领先地位。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷、钉钉、闲鱼等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等70多个场景。此外,IoT等场景下也有若干应用。 高性能 不依赖任何第三方计算库,依靠大量手写汇编实现核心运算,充分发挥ARM CPU的算力。 iOS设备上可以开启GPU加速(Metal),常用模型上快于苹果原生的CoreML。 Android上提供了OpenCL、Vulkan、OpenGL三套方案,尽可能多地满足设备需求,针对主流GPU(Adreno和Mali)做了深度调优。 卷积、转置卷积算法高效稳定,对于任意形状的卷积均能高效运行,广泛运用了 Winograd 卷积算法,对3x3 -> 7x7之类的对称卷积有高效的实现。 针对ARM v8.2的新架构额外作了优化,新设备可利用FP16半精度计算的特性获得两倍提速。 轻量性 针对端侧设备特点深度定制和裁剪,无任何依赖,可以方便地部署到移动设备和各种嵌入式设备中。 iOS平台:armv7+arm64静态库大小5MB左右,链接生成可执行文件增加大小620KB左右,metallib文件600KB左右。 Android平台:so大小400KB左右,OpenCL库400KB左右,Vulkan库400KB左右。 通用性 支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用网络。 转换器支持149个TensorflowOP、58个TFLiteOP、47个CaffeOP、74个ONNXOP;各计算设备后端支持的MNN OP数:CPU 111个,ARM V8.2 6个,Metal 55个,OpenCL 43个,Vulkan 32个。 支持iOS 8.0+、Android 4.3+和具有POSIX接口的嵌入式设备。 支持异构设备混合计算,目前支持CPU和GPU。
阅读全文