继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

还在为机器学习烦恼吗?请收好——10个常用AI开发框架

柳猫
关注TA
已关注
手记 34
粉丝 1.5万
获赞 1209

尽管人工智能(AI )已经存在很长时间了,但这并不意味着风口和高潮已经过去,恰恰相反,浪潮才刚刚开始。 AI 曾被认为是狂热爱好者和天才的专属领域,但由于各种库和框架的蓬勃发展,它慢慢成为了一个不那么排外的 IT 领域,并吸引了大量的人才投入其中。

现在,柳猫将介绍那些用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性。 现在,让我们进入并探索 AI 库的世界吧。

1. TensorFlow

“使用数据流程图对可拓展的机器学习进行计算”

https://img1.mukewang.com/5b9e790a0001d4d208000452.jpg

语言:C++

初接触 AI 时,你听说的首批框架应该包含了谷歌的 TensorFlow。 TensorFlow 是一个使用数据流程图进行数值计算的开源软件。这个不错的框架因其架构而闻名,它允许在任何 CPU 或 GPU 上进行计算,不管是桌面、服务器,还是移动设备。它可在 Python 编程语言中使用。 TensorFlow 主要是通过数据层进行排序,而我们可以调用节点,并根据所得到的信息进行决策。

https://img4.mukewang.com/5b9e792c0001658308000453.jpg

优点:

  • 使用简单易学的语言,如 Python。

  • 使用计算图进行抽象。

  • 可以使用 TensorBoard 获得可视化。

缺点:

  • 运行速度慢,因为 Python 不是最快的语言。

  • 缺乏许多预训练的模型。

  • 不完全开源。

2. Microsoft CNTK

“开源的深度学习工具包”

https://img3.mukewang.com/5b9e79450001a60912590472.jpg

语言:C++

我们是否可以将它看作是微软对谷歌 TensorFlow 的回应? 微软的 CNTK(计算网络工具包)是一个用来增强模块化和保持计算网络分离的库,提供学习算法和模型描述。 在需要大量服务器进行计算的情况下,CNTK 可以同时利用多台服务器。 据说 CNTK 在功能上接近谷歌的 TensorFlow,但速度比对方要快一些。

https://img2.mukewang.com/5b9e795e00015b8714000721.jpg

优点:

  • 高度灵活。

  • 允许分布式训练。

  • 支持 C++、C#、Java 和 Python。

缺点:

  • 它由一种新的语言——NDL(网络描述语言)实现。

  • 缺乏可视化。

3. Theano

“数值计算库”

https://img4.mukewang.com/5b9e796e0001dbe805580164.jpg

语言:Python

作为 TensorFlow 的强有力竞争对手,Theano 是一个强大的 Python 库,它允许使用高效多维数组进行数值计算。 它不使用 CPU,而是透明地使用 GPU,用于数据密集型计算,所以效率很高。 因此,在大约 10 年内,Theano 一直被用于大规模的数据密集型计算。 然而,在 2017 年 9 月 28 日当日,开发团队宣称,将在 2017 年 11 月 15 日发布 1.0 版后,停止对它的主要开发。 但这并没有削弱它的强大实力,你仍可以使用它,随时进行深入学习的研究。

https://img2.mukewang.com/5b9e797e000155af10190645.jpg

优点:

  • 对 CPU 和 GPU 进行了适当优化。

  • 高效的数值计算任务。

缺点:

  • 与其他库相比,原始的 Theano 有点儿低级。

  • 需要与其他库一起使用,以获得较高级的抽象。

  • 在 AWS 上使用有点小 Bug。

4. Caffe

“应对深入学习的快速开放架构”

https://img1.mukewang.com/5b9e798f00019f0f06000325.jpg

语言:C++

Caffe 是一个强大的深度学习框架。 和这个列表中的其他框架一样,它对于深入学习的研究而言,是非常快速和有效的。 使用 Caffe,你可以轻易地构建一个用于图像分类的 CNN(卷积神经网络)。它在 GPU 上运行良好,运行速度非常快。

https://img.mukewang.com/5b9e79ab0001451804300493.jpg

上图是 Caffe 的主类。 优点:

  • 可以与 Python 和 MATLAB 绑定使用。

  • 高性能。

  • 无需编写代码,即可训练模型。

缺点:

  • 对递归网络支持不好。

  • 对新架构来说不是很好。

5. Keras

“针对人类的深度学习”

https://img1.mukewang.com/5b9e79c10001fa9206660347.jpg

语言:Python

Keras 是一个用 Python 编写的开源神经网络库。 不似 TensorFlow、CNTK、Theano、Keras 这种端到端(End-to-End)的机器学习框架, 相反,它是一个接口,提供了高层次的抽象,使得神经网络的配置变得更加简单,而不必考虑所在的框架。 谷歌的 TensorFlow 目前支持 Keras 作为后端,而微软的 CNTK 也将在短时间内获得支持。

https://img3.mukewang.com/5b9e79d70001cf2316001131.jpg

优点:

  • 它对用户友好,易于上手。

  • 高度拓展。

  • 可以在 CPU 或 GPU 上无缝运行。

  • 完美兼容 Theano 和 TensorFlow。

缺点:

  • 不能有效地作为一个独立的框架来使用。

6. Torch

“开源机器学习库”

https://img4.mukewang.com/5b9e79e900016f1106300356.jpg

语言:C

Torch 是一个用于科学计算和数值计算的开源机器学习库。 它是一个基于 Lua 编程语言(终于不再是 Python)的库。 通过提供大量算法,使得深入学习的研究更加容易,并提高了效率和速度。它有一个强大的 N 维数组,帮助进行类似切片和索引这样的计算,并提供线性代数程序和神经网络模型。

https://img2.mukewang.com/5b9e79fc000111f028452134.jpg

优点:

  • 高度灵活。

  • 速度快,效率高。

  • 大量的预训练模型可用。

缺点:

  • 说明文档不够清晰。

  • 缺乏立即使用的即插即用代码。

  • 它基于一个不怎么流行的编程语言 Lua。

7. Accord . NET

“针对 . NET 的机器学习、计算机视觉、统计学和通用科学计算”

https://img3.mukewang.com/5b9e7a170001d54607460563.jpg

语言:C#

这是为 C# 程序员准备的。 Accord . NET 框架是一个 .NET 机器学习框架,使得音频和图像的处理变得更加简单。 该框架可以有效地解决数值优化、人工神经网络,甚至给出了可视化的特征。此外,Accord . NET 对计算机视觉和信号处理具有强大的功能,并且易于算法实现。

https://img.mukewang.com/5b9e7a280001e73510400548.jpg

优点:

  • 它拥有一个庞大且活跃的开发团队。

  • 说明文档非常不错。

  • 高质量的可视化。

缺点:

  • 这不是一个非常流行的框架。

  • 与 TensorFlow 相比,速度慢。

8. Spark MLlib

“可扩展的机器学习库”

https://img.mukewang.com/5b9e7a360001435905450425.jpg

语言:Scala

Apache 的 Spark MLlib 是一个具有高度拓展性的机器学习库。 它在 Java、Scala、Python 甚至 R 语言中都非常有用,因为它使用 Python 和 R 中类似 Numpy 这样的库,能够进行高效的交互。 MLlib 可以很容易地插入 Hadoop 工作流程中。它提供了机器学习算法,如分类、回归、聚类等。 这个强大的库在处理大规模的数据时,速度非常快。

https://img1.mukewang.com/5b9e7a610001d73c13790352.jpg

优点:

  • 对于大规模数据处理来说,非常快。

  • 可用于多种语言。

缺点:

  • 陡峭的学习曲线。

  • 仅 Hadoop 支持即插即用。

  • Sci-Kit Learn “Python 中的机器学习”

9. Sci-Kit Learn

“Python 中的机器学习”

https://img4.mukewang.com/5b9e7ade0001d8d421221323.jpg

语言:Python

Sci-kit learn 是一个针对机器学习的强大 Python 库,主要用于构建模型。 使用诸如 Numpy、SciPy 和 Matplotlib 等其他库构建,对于统计建模技术(如分类、回归、集群等)非常有效。 Sci-Kit learn的特性包括监督式学习算法、非监督式学习算法和交叉验证。

https://img.mukewang.com/5b9e7af000019ce417000900.jpg

优点:

  • 可以使用许多 shell 算法。

  • 高效的数据挖掘。

缺点:

  • 不是最好的模型构建库。

  • GPU 使用不高效。

10. MLPack

“可扩展的 C++ 机器学习库”

https://img.mukewang.com/5b9e7b010001774507000147.jpg

语言:C++

MLPack 是一个使用 C++ 实现的可扩展的机器学习库。在 C++ 中,你可以猜到,它的内存管理非常出色。 拥有高质量的机器学习算法与库,MLPack 的运行速度非常快。它对新手十分友好,因为它提供了一个可供使用的简单 API。

https://img2.mukewang.com/5b9e7b10000123c407230235.jpg

优点:

  • 高度拓展。

  • 可以与 Python 和 C++ 绑定。

缺点:

  • 说明文档不够清晰。(如果这也算的话)

总结

本文所讨论的库都非常高效,久经时间检验,已经是当前无比接近真理的存在了。Facebook、谷歌、雅虎、苹果、微软都在使用这些库进行深度学习和机器学习项目。希望柳猫的文章能对大家有所帮助。


打开App,阅读手记
15人推荐
发表评论
随时随地看视频慕课网APP