【移动端DL框架】当前主流的移动端深度学习框架一览

栏目: 数据库 · 发布时间: 5年前

内容简介:大家好,继之前的12大深度学习开源框架之后,我们准备开通新的专栏《移动端DL框架》,这是第一篇文章,先来做一个总体的介绍,更多的细节可以关注以后的文章在这个专栏中,我们会介绍与移动端的模型训练和部署有关的框架的使用。作者&编辑 | 言有三

大家好,继之前的12大深度学习开源框架之后,我们准备开通新的专栏《移动端DL框架》,这是第一篇文章,先来做一个总体的介绍,更多的细节可以关注以后的文章

在这个专栏中,我们会介绍与移动端的模型训练和部署有关的框架的使用。

作者&编辑 | 言有三 

深度学习模型要落地,比如要部署到手机等移动端平台,之前给大家介绍的用于训练的框架就不能直接使用了,我们需要相应的移动端框架,目前国内外各大公司纷纷开源自家的框架。

1 TensorFlow Lite

这是Google在2017年I/O开发者大会上开源的将TensorFlow训练好的模型迁移到Android App的框架,地址和一些学习资源如下:

【移动端DL框架】当前主流的移动端深度学习框架一览

TensorFlow Lite使用Android Neural Networks API,默认调用CPU,目前最新的版本已经支持GPU。

项目地址和相关学习资源如下。

https://tensorflow.google.cn/lite/

https://github.com/amitshekhariitbhu/Android-TensorFlow-Lite-Example

2 Core ML

Core ML是2017年Apple公司在WWDC上与iOS11同时发布的移动端机器学习框架,底层使用Accelerate和Metal分别调用CPU和GPU。Core ML需要将你训练好的模型转化为Core ML model,它的使用流程如下:

【移动端DL框架】当前主流的移动端深度学习框架一览

在一年之后,也就是2018年WWDC上,Apple发布了Core ML 2,主要改进就是通过权重量化等技术优化模型的大小,使用新的Batch Predict API提高模型的预测速度,以及容许开发人员使用MLCustomLayer定制自己的Core ML模型。

项目地址和相关学习资料如下:

https://developer.apple.com/documentation/coreml

https://github.com/likedan/Awesome-CoreML-Models

3 Caffe2

Caffe2是facebook在2017年发布的一个跨平台的框架,不仅仅支持Windows,Linux,Macos三大桌面系统,也 支持移动端iOS,Android,可以说是集训练和推理于一身。

【移动端DL框架】当前主流的移动端深度学习框架一览

Caffe2本来就是基于caffe开发的,Caffe基于C++开发,所以可以很自然地移植到移动端,目前Caffe2已经全部并入Pytorch。两者的区别就是PyTorch是为研究而开发,更加灵活。Caffe2是专为移动生产环境而开发,更加高效。

项目地址以及其相关的model zoo地址如下。

https://github.com/facebookarchive/caffe2

https://caffe2.ai/docs/zoo.html

https://github.com/caffe2/models

4 NCNN

ncnn是2017年腾讯优图实验室开源的移动端框架,使用C++ 实现,支持Android和IOS两大平台。

【移动端DL框架】当前主流的移动端深度学习框架一览

ncnn已经被用于腾讯生态中的多款产品,包括微信,天天P图等。

项目地址和相关学习资料如下。

https://github.com/Tencent/ncnn

https://github.com/BUG1989/caffe-int8-convert-tools.git

5 Paddle-Mobile

Paddle-Mobile是2017年百度PaddlePaddle组织下的移动端深度学习开源框架,当时叫做mobile-deep-learning(MDL)。支持安卓和ios平台,CPU和GPU使用,提供量化工具。

【移动端DL框架】当前主流的移动端深度学习框架一览

可以直接使用Paddle Fluid训练好的模型,也可以将Caffe模型进行转化,或者使用ONNX格式的模型。

项目地址如下:

https://github.com/PaddlePaddle/paddle-mobile

https://github.com/PaddlePaddle/Paddle

6 QNNPACK

QNNPACK是Facebook在2018年发布的int8量化低精度高性能开源框架,全称Quantized Neural Network PACKage, 用于手机端神经网络计算的加速,已经被整合到PyTorch 1.0中,在Caffe2里就能直接使用。

【移动端DL框架】当前主流的移动端深度学习框架一览

这个框架可以为很多运算加速,比如DW卷积 (Depthwise Convolution) ,目前支持的列表如下:

【移动端DL框架】当前主流的移动端深度学习框架一览

项目地址如下。

https://github.com/pytorch/QNNPACK

7 MACE

MACE是2018年小米在开源中国开源世界高峰论坛中宣布开源的移动端框架,以OpenCL和汇编作为底层算子,提供了异构加速可以方便在不同的硬件上运行模型,同时支持各种框架的模型转换。

【移动端DL框架】当前主流的移动端深度学习框架一览

项目地址和相关学习资源如下:

https://github.com/XiaoMi/mace

https://github.com/XiaoMi/mace-models

MNN

MNN是2019年阿里开源的移动端框架,不依赖第三方计算库,使用汇编实现核心运算, 支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用网络。 作为后起之秀,自然是吸取了前面开源的这些移动端推理框架的所有优点。

【移动端DL框架】当前主流的移动端深度学习框架一览

已经用于阿里的淘宝,优酷等多个应用,覆盖短视频、搜索推荐等场景。

项目地址和学习资源如下:

https://github.com/alibaba/MNN

9 其他

除了上面这些正式发布的开源框架,还有一些其他的资源。比如不开源的骁龙的官方SDK SNPE,主要支持自家的DSP、GPU和CPU。

还有很早就存在的GitHub项目 caffe-android-lib,用于将Caffe往移动端进行移植,其实各家AILab应该自己都会有一套这样的工具

以及caffe量化 工具 包caffe-int8-convert-tools等。

https://github.com/sh1r0/caffe-android-lib

https://github.com/BUG1989/caffe-int8-convert-tools

总结

这一次先让大家对移动端的深度学习框架有一个印象,后面我们会一个一个进行学习,敬请期待。

春季划报名倒计时 “5天”

【移动端DL框架】当前主流的移动端深度学习框架一览

有三AI纪念版扑克牌发售中

【移动端DL框架】当前主流的移动端深度学习框架一览

直播预告

【移动端DL框架】当前主流的移动端深度学习框架一览

今日知识汇总

【移动端DL框架】当前主流的移动端深度学习框架一览

今日看图猜技术

【移动端DL框架】当前主流的移动端深度学习框架一览

有三AI生态

【移动端DL框架】当前主流的移动端深度学习框架一览

转载文章请后台联系

侵权必究

更多请关注知乎专栏《有三AI学院》

【移动端DL框架】当前主流的移动端深度学习框架一览

【移动端DL框架】当前主流的移动端深度学习框架一览


以上所述就是小编给大家介绍的《【移动端DL框架】当前主流的移动端深度学习框架一览》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Domain-Driven Design

Domain-Driven Design

Eric Evans / Addison-Wesley Professional / 2003-8-30 / USD 74.99

"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is n......一起来看看 《Domain-Driven Design》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换