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

随着 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 应用、基础设施、及行业经验,进行一场关于面对面的技术对话。

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

报名链接:https://www.oschina.net/event/2279616?origin=sqrw2

猜你喜欢

转载自www.oschina.net/news/97092/compare-some-ai-frameworks