十大机器学习框架

已发表: 2017-03-11
目录显示
1.张量流
2. 咖啡
3.亚马逊机器学习
4.阿帕奇辛加
5.微软 CNTK
6. 火炬
7.雅阁.NET
8. Apache Mahout
9. Theano
10. 头脑风暴

在深入研究机器学习 (ML) 的世界时,从许多替代方案中选择一个框架可能是一项令人生畏的任务。 您可能已经熟悉这些名称,但在决策过程中评估选项很有用。 机器学习世界中有不同的框架、库、应用程序、工具包和数据集,它们可能会非常令人困惑,尤其是如果您是初学者。 在选择一个来构建应用程序时,必须习惯流行的 ML 框架。 这就是为什么我们编制了一份排名前 10 位的机器学习框架列表。

1.张量流

TensorFlow 由 Google Brain 团队开发,用于不同的语言理解和感知任务。 这个开源框架正被用于深度神经网络和机器学习的广泛研究。 作为 Google Brain 的第二个机器学习框架,它与大多数新的 CPU 和 GPU 兼容。 我们每天使用的许多流行的谷歌服务,如 Gmail、语音识别、谷歌照片甚至谷歌搜索都配备了 Tensorflow。

Tensorflow 使用数据流图来执行复杂的数值任务。 使用包含边和节点的有向图来详细说明数学计算。 这些节点用于实现操作,也可以充当提供数据的端点。 边也代表不同节点之间的输入/输出关联。

2. 咖啡

Caffe 是一个机器学习框架,其设计以更好的表达、速度和模块化为重点。 它是利用卷积神经网络 (CNN) 为计算机视觉/图像分类而开发的。 Caffe 因其 Model Zoo 广受欢迎,它是一组无需任何编码即可实现的预训练模型。

它更适合构建应用程序,而不是在研发方面表现更好的 Tensorflow。 如果您正在处理具有文本、声音或时间序列数据的应用程序,请注意,Caffe 不适用于计算机视觉以外的任何用途。 但是,它可以在大量硬件上动态运行,并且只使用一个标志就可以很好地在 CPU 和 GPU 之间切换。

3.亚马逊机器学习

亚马逊为开发人员开发了自己的机器学习服务,称为 AML。 它是一组工具和向导,可用于开发复杂、高端和智能的学习模型,而无需实际修改代码。 使用 AML,您的应用程序所需的预测可以通过更易于使用的 API 派生。 亚马逊内部数据科学家使用 AML 背后的技术为其亚马逊云服务提供支持,并且具有高度可扩展性、动态性和灵活性。 AML 可以连接到存储在 Amazon S3、RDS 或 Redshift 中的数据,并执行二进制分类、回归或多类分类等操作以创建新模型。

4.阿帕奇辛加

Apache Singa 主要专注于使用模型分区和并行化训练过程的分布式深度学习。 它提供了一个简单而健壮的编程模型,可以跨节点集群工作。 主要应用是图像识别和自然语言处理(NLP)。

Singa 是使用基于直观层抽象的编程模型开发的,并支持一系列深度学习模型。 由于它基于非常灵活的架构,它可以运行同步和异步甚至混合训练方法。 Singa 的技术栈由三个重要组件组成:IO、模型和核心。 IO 组件包含用于向网络和磁盘读取/写入数据的类。 核心组件处理张量操作和内存管理功能。 模型包含用于机器学习模型的算法和数据结构。

5.微软 CNTK

CNTK(认知工具包)是微软的开源机器学习框架。 虽然它在语音识别领域更受欢迎,但 CNTK 也可以用于文本和图像训练。 它支持多种机器学习算法,例如 AS CNN、LSTM、RNN、序列到序列和前馈,是目前最具动态性的机器学习框架之一。 CNTK 支持多种硬件类型,包括各种 CPU 和 GPU。

兼容性是 CNTK 的一大亮点。 它也被誉为目前最具表现力和易于使用的机器学习架构。 在 CNTK 上,您可以使用 C++ 和 python 等语言,并使用内置的训练模型或构建自己的模型。

6. 火炬

Torch 可以说是最简单的机器学习框架,可以快速轻松地设置和启动,特别是如果您使用的是 Ubuntu。 Torch 于 2002 年在纽约大学开发,广泛用于 Twitter 和 Facebook 等大型科技公司。 Torch 是用一种叫做 Lua 的语言编码的,这种语言不常见但易于阅读和理解。 Torch 的一些好处可以归功于这种友好的编程语言,它带有有用的错误消息、巨大的示例代码库、指南和有用的社区。

7.雅阁.NET

Accord.NET 是一个基于.NET 的开源机器学习框架,非常适合科学计算。 它由不同的库组成,可用于模式识别、人工神经网络、统计数据处理、线性代数、图像处理等应用程序。该框架包括可作为安装程序、NuGet 包和源代码使用的库。 Accord.NET 有一个矩阵库,可促进代码的可重用性和渐进式算法更改。

8. Apache Mahout

作为 Apache 软件基金会的一个免费和开源项目,Apache Mahout 的构建目标是为集群、分类和协同过滤等应用程序开发免费的分布式或可扩展的 ML 框架。 Mahout 中还提供了用于不同计算操作的 Java 集合和 Java 库。

Apache Mahout 使用 MapReduce 范例部署在 Hadoop 之上。 一个伟大的应用程序是立即将数据转化为洞察力。 连接存储在 Hadoop 上的大数据后,Mahout 可以帮助数据科学工具从数据集中找到有意义的模式。

9. Theano

Theano 于 2007 年在以机器学习算法闻名于世的蒙特利尔大学开发。 虽然被视为低端机器学习框架,但它灵活且速度极快。 框架抛出的错误消息因无用且神秘而臭名昭著。 撇开这些不谈,Theano 是一个更适合研究任务的平台,并且在这方面非常有帮助。

它主要用作高端抽象系统的基础平台,将 API 包装器发送到 Theano。 一些流行的库的例子有 Lasagne、Blocks 和 Keras。 使用 Theano 的一个缺点是您必须修改一些解决方法才能获得多 GPU 支持。

10. 头脑风暴

考虑到其简单性和灵活性,Brainstorm 是最容易掌握的机器学习框架之一。 它使神经网络的工作同时变得更快、更有趣。 Brainstorm 完全用 Python 编写,可在多个后端系统上顺利运行。

Brainstorm 提供了两个使用 Python 的“处理程序”或数据 API——一个用于 Numpy 库的 CPU,另一个用于使用 CUDA 的 GPU。 大多数繁重的工作都是由 Python 脚本完成的,这意味着几乎没有丰富的前端 UI。