机器学习|几款主流框架的对比和选择

2018 年 6 月 15 日 开源中国


随着 AI 技术快速发展,各种理论与实践层出不穷,它正在迅速改变我们生活中几乎每一个领域。而各种开发库和框架的发展,也拉近了开发者与 AI 距离。本文将介绍主流人工智能开发库,并分析其特征,帮助 AI 领域开发者减少选择障碍。


TensorFlow

Google 开源人工智能工具

TensorFlow 是 Google 的开源人工智能工具。它提供了一个使用数据流图进行数值计算的库。可以运行在多种不同的有着单或多 CPU 和 GPU 的系统,甚至可以在移动设备上运行。它拥有深厚的灵活性、真正的可移植性、自动微分功能,并且支持 Python 和 c++。


但由于 TensorFlow 的每个计算流都必须构造为一个静态图,且缺乏符号性循环,增加了计算困难。TensorFlow 在执行性能方面并无优势,对 RNN 支持不如 Theano,缺乏许多预先训练的模型。


Microsoft CNTK

开源深度学习工具包

CNTK 可以看作是微软对 Google 的 TensorFlow 的对擂。Microsoft 计算网络工具包 (CNTK) 是一个增强分离计算网络模块化和维护的库,提供学习算法和模型描述。去年 CNTK 2.0 版本的发布简化了深度学习流程,可在更广泛的人工智能生态系统之中实现无缝整合。


CNTK 支持C ++、C#、Java、Python,允许分布式训练,还有丰富的 RNN教程和预构建模型。但 CNTK 最开始为内部人员开发使用,所以文档晦涩难懂,社区规模较小,入门资料少。


Deeplearning4j

为 Java 用户量身定制

Deeplearning4j(以下简称:DL4J)是 Java 和 Scala 环境下的一个开源分布式的深度学习项目,可以构建、定型和部署神经网络。DL4J 与 Hadoop 和 Spark 集成,支持分布式 CPU 和 GPU,为商业环境,而非研究工具目的所设计。DL4J 支持 YARN 与 RBM、DBN、CNN、RNN、RNTN 和 LTSM等多种深度网络架构,还对矢量化库 Canova 提供支持。


DL4J 使用 Java 语言实现,本质上比 Python 快,在图像识别、欺诈检测和自然语言处理方面的表现出众。


Caffe

快速、开源的深度学习框架

Caffe 是一个广为人知、广泛应用的机器视觉库,将 Matlab 实现的快速卷积网络移植到了 C 和 C++ 平台上。Caffe 具有很好的 CNN 建模能力,但是 RNN 资源就少很多,所以它更多的是面向图像识别、推荐引擎和自然语言识别等方向的应用,不面向其他深度学习应用诸如语音识别、时间序列预测、图像字幕和文本等其他需要处理顺序信息的任务。


但 Caffe 不像 TensorFlow、CNTK 和 Theano 那样支持细粒度网络层。构建复杂的层类型必须以低级语言完成。由于其遗留架构,Caffe 对循环网络和语言建模的支持总体上很薄弱。


Caffe2

最佳性能解放生产力

去年 4 月,Facebook 开源了 Caffe2。Caffe2 更注重模块化,在移动端、大规模部署上表现卓越。如同 TensorFlow,Caffe2 使用 C++ Eigen 库,支持 ARM 架构。


Caffe 设计的选择使得它处理视觉类型的难题时很完美,Caffe2 延续了它对视觉类问题的支持,且增加了对自然语言处理、手写识别、时序预测有帮助的 RNN 和 LSTM 支持。Caffe2 的提供了最佳的性能,但在计算灵活性上不如 PyTorch,贾扬清曾在 reddit 上表示这是 Caffe2 和 PyTorch 团队有意做出的选择。


Theano

深度学习框架祖师爷

Theano 最初于 2007 年发布,它是一个开源的 Python 库,允许开发者轻松地构建各种机器学习模型。Theano 的特征是可以简化定义、优化和评估数学表达式的过程,它能够将数据结构转换为与 NumPy、BLAS 等本地库以及本地代码集成的非常高效的代码。此外,它针对 GPU 进行了优化,并且具有广泛的代码测试功能。


由于 Theano 是最早的 AI 库之一,它曾被视为推动深度学习发展的行业标准。但去年 9 月,Theano 宣布停止更新。对深度学习新手来说,用 Theano 练手未尝不可,而对职业开发者来说,Theano 已成为过去式。


人工智能的开发框架和 AI 库众多,由于篇幅有限,无法一一对比介绍,如果有你经常使用但未被提及的其他库,欢迎在评论区留言与大家分享讨论!


除了线上交流,我们在 2018 年 6 月 23 日(周六)还在南京举办了人工智能专场源创会,本次源创会特邀华为开源软件能力中心 AI 领域开源研究员——孟繁亮,与我们一起分享 AI 领域开源生态,欢迎各位OSCer前来交流讨论。


除此之外,我们南京源创会 —— 人工智能专场还邀请了:


  • 从事视频 AI 服务、云剪辑等研发工作的阿里云视频服务技术专家——邹娟

  • 专注 GPU 开发和人工智能技术的 NVIDIA 开发者社区经理——何琨

  • 拥有多年云通讯服务、大数据、AI 等产品研发经验的容联易通技术专家——王凯

  • thinkphp 框架核心开发者之一、珺馨机器人集团 CTO——罗飞


五位行业大牛齐聚,以人工智能为核心,与你一起分享 AI 应用、基础设施、及行业经验,进行一场关于面对面的技术对话。


扫码报名,与业内大咖和更多小伙伴当面交流。






推荐阅读

脚本语言不行?JavaScript 重写 Office 365 已进入尾声

Linus 又开怼:有时候标准就是一坨屎!

从 Java 到 Kotlin,再从 Kotlin 回归 Java

“王者对战”之 MySQL 8 vs PostgreSQL 10

C++ 协程的近况、设计与实现中的细节和决策

点击“阅读原文”查看更多精彩内容

登录查看更多
2

相关内容

开源的Java分布式深度学习框架
深度学习目标检测方法及其主流框架综述
专知会员服务
148+阅读 · 2020年6月26日
【文献综述】深度学习目标检测方法及其主流框架综述
专知会员服务
119+阅读 · 2020年6月26日
【硬核书】可扩展机器学习:并行分布式方法
专知会员服务
86+阅读 · 2020年5月23日
一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
【综述】7篇非常简洁近期深度学习综述论文
专知会员服务
76+阅读 · 2019年12月31日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
167+阅读 · 2019年10月28日
深度学习算法与架构回顾
专知会员服务
84+阅读 · 2019年10月20日
深度神经网络模型压缩与加速综述
专知会员服务
129+阅读 · 2019年10月12日
Java 工程师快速入门深度学习,可以从 Deeplearning4j 开始
人工智能头条
13+阅读 · 2018年12月14日
最流行的6大开源自然语言处理库对比
大数据技术
8+阅读 · 2018年8月14日
深度学习开发必备开源框架
九章算法
12+阅读 · 2018年5月30日
机器学习者必知的 5 种深度学习框架
深度学习世界
7+阅读 · 2018年5月3日
28 款 GitHub 最流行的开源机器学习项目(附地址)
七月在线实验室
4+阅读 · 2017年12月18日
【模型】主流的深度学习模型有哪些?
GAN生成式对抗网络
7+阅读 · 2017年10月3日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
Arxiv
5+阅读 · 2020年3月26日
Arxiv
38+阅读 · 2020年3月10日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
53+阅读 · 2018年12月11日
Arxiv
8+阅读 · 2018年1月19日
Arxiv
4+阅读 · 2017年7月25日
VIP会员
相关VIP内容
深度学习目标检测方法及其主流框架综述
专知会员服务
148+阅读 · 2020年6月26日
【文献综述】深度学习目标检测方法及其主流框架综述
专知会员服务
119+阅读 · 2020年6月26日
【硬核书】可扩展机器学习:并行分布式方法
专知会员服务
86+阅读 · 2020年5月23日
一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
【综述】7篇非常简洁近期深度学习综述论文
专知会员服务
76+阅读 · 2019年12月31日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
167+阅读 · 2019年10月28日
深度学习算法与架构回顾
专知会员服务
84+阅读 · 2019年10月20日
深度神经网络模型压缩与加速综述
专知会员服务
129+阅读 · 2019年10月12日
相关资讯
Java 工程师快速入门深度学习,可以从 Deeplearning4j 开始
人工智能头条
13+阅读 · 2018年12月14日
最流行的6大开源自然语言处理库对比
大数据技术
8+阅读 · 2018年8月14日
深度学习开发必备开源框架
九章算法
12+阅读 · 2018年5月30日
机器学习者必知的 5 种深度学习框架
深度学习世界
7+阅读 · 2018年5月3日
28 款 GitHub 最流行的开源机器学习项目(附地址)
七月在线实验室
4+阅读 · 2017年12月18日
【模型】主流的深度学习模型有哪些?
GAN生成式对抗网络
7+阅读 · 2017年10月3日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
相关论文
Arxiv
5+阅读 · 2020年3月26日
Arxiv
38+阅读 · 2020年3月10日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
53+阅读 · 2018年12月11日
Arxiv
8+阅读 · 2018年1月19日
Arxiv
4+阅读 · 2017年7月25日
Top
微信扫码咨询专知VIP会员