[转]盘点程序员必须了解的十大最佳AI库及框架

[转]盘点程序员必须了解的十大最佳AI库及框架

眼下,AI 已经成为越来越火的一个方向,程序员对于新技术是最敏感的一个人群,作为一名程序员如何转向人工智能方向?

本文将向您介绍一些在人工智能(AI)领域常被使用的优质软件库,并且分析它们的优/劣势和自身特点。

虽然 AI 曾经被称为只有书呆子和天才才去触碰的专业领域,但是现如今由于各种软件库和框架的发展,它已成为一个更加开放的 IT 领域,很多人都已投身于其中。

现在就让我们来深入了解和探索这个纷繁的 AI 库的世界吧!

TensorFlow

“通过使用数据流图的计算,来实现可扩展的机器学习”,语言:C++ 或 Python。
当提到 AI 的时候,您首先听到的框架应该就是谷歌的 TensorFlow。

TensorFlow 是使用数据流图来执行数值计算的开源库。该框架的特点是它可以利用任何 CPU 或 GPU 进行计算,无论是台式机服务器、甚至是移动设备的架构都可以实现。这个框架中提供了 Python 语言的编程环境。

TensorFlow 通过所谓的各种节点来分类数据层,并对它所获得的任何信息做出判定。
想了解更多相关信息,可以参看:https://www.tensorflow.org/

优势:

  • 使用一种简单易学的语言--Python。
  • 采用计算图形的抽象。
  • 由 TensorBoard 提供可视化。

劣势:

  • 由于 Python 并非是最快的语言,因此该软件库运行起来并不快。
  • 缺乏各种预先训练好(pre-trained)的模型。
  • 并非完全开源。

微软 CNTK

“一个开源的深度学习工具包”,语言:C++。
我们可以称之为微软对于谷歌 TensorFlow 的“回应”。

微软的计算网络工具包(Microsoft's Computational Network ToolKit,CNTK)是一种能够提高模块化和分离式计算网络的软件库,它还提供了各种学习算法和模型的描述。
在需要有大量服务器参与运行的时候,CNTK 可以利用多台服务器来同步实现。虽然据说它在功能上将会对谷歌 TensorFlow 有所屏蔽,但现在看来还为时过早。

想了解更多相关信息,可以参看:https://github.com/Microsoft/CNTK

优势:

  • 非常灵活。
  • 可实现分布式的训练。
  • 支持 C++,C#,Java 和 Python。

劣势:

  • 它是由一种新的语言--网络描述语言(NetworkDescription Language,NDL)来实现。

  • 可视化不足。

Theano

“一种数值计算的软件库”,语言:Python。
Theano 是 TensorFlow 的强有力竞争者。它是一个功能强大的 Python 库,能够高效地实现与各种多维数组有关的数值运算。
该软件库能够准确地使用 GPU 来执行各种数据密集型的计算,而不会在运行中给 CPU 增加负担。
出于这个原因,在近十年来,Theano 一直被运用于供电系统内部各种大规模的计算密集型操作。
不过在 2017 年 9 月,Theano 宣布将在 2017 年 11 月的最后一次重要发布之后,对其 1.0 版本停止更新。

当然,这并不意味着它在功能上会有所逊色,只要您愿意,对它随时展开研究都是值得的。
想了解更多相关信息,可以参看:https://github.com/Theano/Theano

优势:

  • 对 CPU 和 GPU 的使用进行了适当的优化。
  • 高效的数字任务处理能力。

劣势:

  • 原生的 Theano 相对于其他软件库的水平较低,需要与其他软件库一起使用,以获得较高的抽象水平。
  • 在 AWS 上运行时会有一些 Bug。

Caffe

“深度学习的开放式框架,且速度快”,语言:C++。
Caffe 是一个功能强大的深度学习框架。和上述列表中的其他框架相比,它能够实现快速和有效的深度学习式研究。

通过Caffe,您可以非常容易地为图像分类,建立卷积神经网络(convolutional neural network,CNN)。Caffe 能够有效地工作在 GPU 上,并且在运行过程中能够发挥极快的速度。
想了解更多相关信息,可以参看:http://caffe.berkeleyvision.org/

Caffe 的主要类包括:

优势:

  • 可与 Python 和 MATLAB 绑定。
  • 运行性能极佳。
  • 无需编写代码,便可实现对各个模型的训练。

劣势:

  • 对复发性的网络(recurrent networks)支持不佳。
  • 与新架构的协同性不好。

Keras

“为人类的深度学习而打造”,语言:Python。
Keras 是一个用 Python 编写的开源神经网络库。不像 TensorFlow、CNTK 和 Theano,Keras 并不服务于端到端的机器学习框架。
相反地,作为一个接口,它提供了一个高层次的抽象,这使得无论是在什么样的框架下,神经网络都能够方便地进行配置。
目前谷歌 TensorFlow 能够将 Keras 作为后端予以支持,而微软的 CNTK 是否会在将来支持 Keras,则暂无时间表。
想了解更多相关信息,可以参看:https://keras.io/

优势:

  • 用户友好且容易上手。
  • 容易扩展。
  • 无缝运行在 CPU 和 GPU 上。
  • 能与 Theano 和 TensorFlow 无缝协作。

劣势:

  • 无法作为一个独立的框架被使用。

Torch(火炬)

“一个开源的机器学习库”,语言:C。
Torch 是一个为科研和数值运算打造的、开源的机器学习库。它基于的是 Lua 编程语言,而非 Python 库。通过提供大量的算法,它不但使得深度学习研究更为容易,而且能提高效率和速度。
Torch 具有强大的 N 维阵列,这对于诸如切片和索引等操作是非常有用的。它还提供了线性代数的程序和神经网络的模型。

想了解更多相关信息,可以参看:
http://torch.ch/

优势:

  • 非常灵活。
  • 有极高的速度和效率。
  • 具有大量的预先训练好的模型。

劣势:

  • 文档不清。
  • 缺少即插即用的代码。
  • 基于的是一种不那么流行的语言--Lua。

Accord.NET

“支持机器学习、计算机视觉、统计、以及使用.NET的科学计算”,语言:C#。
这是为C#程序员准备的软件库,Accord.NET 是一种 .NET 的机器学习框架,它方便了音频和图像的各种处理。
该框架可以有效地处理数值优化、人工神经网络、甚至可视化等方面。除此之外,Accord.NET 在计算机视觉和信号处理上也具有强大的功能,而且通过一些简单的算法就能实现。
想了解更多相关信息,可以参看:http://accord-framework.net/

优势:

  • 它拥有一个庞大且活跃的开发团队。
  • 具有非常好的文档框架。
  • 可实现质量可视化。

劣势:

  • 该框架并不是非常流行。
  • 比 TensorFlow 要运行得缓慢一些。

Spark MLlib

“一个可扩展的机器学习库”,语言:Scala。
Apache 的 Spark MLlib 是一个极具扩展性的机器学习库。它支持的编程语言有 Java、Scala、Python、甚至是 R 语言。
它能够非常有效地通过 Python 和 R 语言的 Numpy 库(译者注:NumPy 系统是 Python 的一种开源的数值计算扩展)进行交互操作。
MLlib 能够很容易地被植入到 Hadoop 的工作流中。它还能提供诸如分类、回归、归并等机器学习的算法。在涉及到大规模数据处理时,这款功能强大的软件库运行起来非常快。

想了解更多相关信息,可以参看:https://spark.apache.org/mllib/

优势:

  • 能极快速地处理大规模的数据。
  • 支持多种语言。

劣势:

  • 学习曲线“陡峭”(即不易学习)。
  • 只能对 Hadoop 实现即插即用。

Sci-kitLearn

“使用 Python 进行机器学习”,语言:Python。
SCI-Kit 是一款主要用于在机器学习中构建各类模型的、非常强大的 Python 库。
通过使用诸如 Numpy、SciPy 和 Matplotlib 之类的库,它对于诸如分类、回归、归并等统计模型非常有效。SCI-Kit 还能为您带来监管式与无监管式的学习算法、以及交叉验证等功能。

想了解更多相关信息,可以参看:http://scikit-learn.org/

优势:

  • 能支持许多主流的算法。
  • 提供有效的数据挖掘。

劣势:

  • 对于构建模型来说并非是最好的。
  • 使用 GPU 时,效果并非最佳。

MLPack

“一个可扩展的 C++ 类型机器学习库”,语言:C++。
MLPack 是一款利用 C++ 来实现可扩展机器学习的软件库。由于它运行在 C++ 中,因此您完全可以想象到它对内存的高效管理。
由于在库中自带优质的机器学习算法,MLPack 运行起来速度极快。另外,该软件库对于新手来说十分“友好”,它提供了一个简单的 API。

想了解更多相关信息,可以参看:http://mlpack.org/

优势:

  • 扩展性极强。
  • 提供 Python 和 C++ 的绑定。

劣势:

  • 没有优质的文档。

总结

本文在此所讨论到的各种软件库都是在大家长期使用之后,备受好评且高质量的。
像 Facebook、谷歌、雅虎、苹果和微软这样的大公司已经将它们运用到了各自的深度学习和机器学习的项目中。您还有什么理由不去试试呢?

开发者 AI

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,000评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,745评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,561评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,782评论 1 298
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,798评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,394评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,952评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,852评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,409评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,483评论 3 341
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,615评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,303评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,979评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,470评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,571评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,041评论 3 377
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,630评论 2 359

推荐阅读更多精彩内容