审视十大热门的AI框架与资源库 分析优点与劣势

编译作者: 核子可乐译 2018-01-17 21:34:43

【51CTO.com快译】人工智能绝非新鲜事物,而早已存在于科学领域之内。然而随着这一领域近年来的迅猛发展,目前人工智能已经在全球范围内掀起热潮。以往的人工智能领域被称为书呆子与天才的集散地,但如今随着各类资源库及框架的发展,其正逐步成为一类更为友好的IT范畴,并吸引更多普通人士加入其中。

在今天的文章中,我们将审视那些用于人工智能开发的高质量资源库,分析其优点与劣势,同时就部分特性展开讨论。下面,马上开始探索这片人工智能资源库的世界!

1. TensorFlow

“利用数据量图计算实现可扩展机器学习。”

语言: C++或Python。 在初涉AI领域时,大家听说的首款框架几乎必然是谷歌公司的TensorFlow。 TensorFlow是一款开源软件,利用数据流图进行数值计算。这套框架据称拥有一套可运行在任何CPU或GPU之上的计算架构——包括台式机、服务器或者移动设备。另外,这套框架亦可在Python编程语言当中使用。 TensorFlow对被称为节点的数据层进行排序,并根据所获得的任意信息作出决策。

优点:

  • 使用易于学习的语言(Python)。
  • 使用计算图抽象机制。
  • 可配合TensorBoard实现可视化。

劣势:

  • 速度较慢,这主要是受到Python语言的影响。
  • 缺少充足的预训练模型。
  • 并非完全开源。

2. 微软 CNTK

“一套开源深度学习工具集。”

语言: C++. 我们可以将CNTK称为微软的TensorFlow。 微软的这套计算网络工具集是一套能够强化各独立计算网络的模块化与维护能力的资源库,同时提供学习算法与模型描述。 与此同时,CNTK还能够发挥多服务器优势,从而更好地利用大量资源处理任务。

据称其功能与谷歌的TensorFlow非常相似,只是其速度要更快一些。

优点:

  • 极具灵活性。
  • 允许进行分布式训练。
  • 支持C++、C#、Java以及Python。

劣势:

  • 其采用一种新型语言实现,即网络描述语言(简称NDL)。
  • 缺少可视化能力。

3. Theano

“一款数值计算库”。

语言: Python。

Theano堪称TensorFlow的一位强有力竞争对手,这是一套功能强大的Python库,允许以高效方式进行与多维数组相关的数值运算。 这套库以透明化方式利用GPU(而非CPU)执行数据密集型计算,因此运算效率很高。正因为如此,Theano早在约十年之前就已经被引入至大规模计算密集型任务当中。 然而,2017年9月开发团队宣布Theano的主要开发工作将于2017年11月1.0版本发布后正式停止。

当然,这一切都不足以影响Theano本身那强大的表现。您仍可随时利用其开展自己的深度学习研究工作。

优点:

  • 针对CPU与GPU进行了适当优化。
  • 在数值运算任务方面效率可观。

劣势:

  • 与其它资源库相比,Theano显得较为原始且底层。
  • 需要利用其它库才能获得高级抽象能力。
  • 在AWS上运行时存在一点bug。

4. Caffe

“快速且开放的深度学习框架。” 语言: C++。 Caffe是一款强大的深度学习框架。 与本份清单上列出的其它框架选项一样,Caffe同样拥有极为出色的深度学习研究速度与效率。 利用Caffe,您能够非常轻松地构建起卷积神经网络(简称CNN)以实现图像分类。Caffe能够在GPU上运行良好,从而显著提升运行期间的速度表现。

Caffe主类:

优点:

  • 提供Python与MATLAB绑定。
  • 强大的性能表现。
  • 可在无需编写代码的前提下进行模型训练。

劣势:

  • 递归网络较差。
  • 对新架构支持效果一般。

5. Keras

“适合人类的深度学习方案。” 语言: Python。 Keras是一套由Python编写而成的开源神经网络库。 与TensorFLow、CNTK乃至Theano不同,Keras并不属于端到端机器学习框架。 相反,其作为一个接口面向各类其它框架提供高层级抽象,从而使得神经网络的配置变得更为简单。

谷歌公司的TensorFlow目前支持将Keras作为后端,而微软的CNTK亦将很快提供同样的支持选项。

优点:

  • 具备用户友好特性。
  • 易于扩展。
  • 可同时在CPU与GPU上无缝运行。
  • 能够以无缝方式同Theano及TensorFlow协作。

劣势: 无法作为独立框架加以使用。

6. Torch

“一套开源机器学习库。” 语言: C。 Torch是一套用于科学及数值运算的开源机器学习库。 这是一套基于——不是Python了哦——Lua编程语言的库。 通过提供数量庞大的算法选项,其显著简化了深度学习研究的门槛并提升了效率与速度。Torch拥有一个强大的N维数组,可帮助用户轻松完成分片及索引等操作。其还提供多种线性代数例程与神经网络模型。

优点:

  • 极具灵活性。
  • 可观的速度及效率。
  • 提供大量预训练模型。

劣势:

  • 说明文档不够清晰。
  • 缺少可立即使用的即插即用代码。
  • 基于Lua这种不太流行的语言。

7. Accord.NET

“面向.NET的机器学习、计算机视觉、统计以及通用科学计算。” 语言: C#。 这是一份专门献给C#程序员的厚礼。 Accord.NET框架是一套.NET机器学习框架,可轻松完成音频与图像的处理。

这套框架能够高效处理数值优化、人工神经网络甚至是可视化任务。除此之外,Accord.NET还擅长计算机视觉与信号处理,亦可轻松实现各类算法。

优点:

  • 拥有庞大而活跃的开发团队。
  • 说明文档质量极高。
  • 高质量可视化能力。

劣势:

  • 并不算非常流行。
  • 相较于TensorFlow速度更慢。

8. Spark MLlib “一套可扩展的机器学习库。” 语言: Scala。 Apache的Spark MLlib是一套极具可扩展性的机器学习库。 其适用于Java、Scala、Python甚至是R等语言,且效率极高,能够与Python库及R库中的numpy进行互操作。 MLlib能够轻松被插入至Hadoop工作流当中。其提供多种机器学习算法,具体包括分类、回归与聚类等等。

这套强大的库在处理超大规模数据时速度极快。

优点:

  • 在处理超大规模数据时速度极快。
  • 适用于多种语言。

劣势:

  • 拥有陡峭的学习曲线。
  • 仅可面向Hadoop实现即插即用。

9. Sci-kit Learn

“Python中的机器学习实现方案。” 语言: Python。 Sci-kit learn是一套强大的Python库,主要用于机器学习当中的模型构建类场景。 由于利用numpy、SciPy以及matplotlib等其它库构建而成,因此其能够以极高效率处理各类统计建模技术,具体包括分类、回归以及聚类等。 Sci-kit learn拥有监督学习算法、无监督学习算法以及交叉验证等功能。

优点:

  • 可支持多种主要算法。
  • 在数据挖掘方面效率很高。

劣势:

  • 并非模型构建的最佳选项。
  • GPU资源利用效率不高。

10. MLPack

“一套可扩展的C++机器学习库。” 语言: C++。 MLPack是一套以C++语言实现的可扩展机器学习库。由于其以C++编写而成,因此大家可以想见其在内存管理方面颇有心得。 MLPack拥有出色的运行速度,这是由于该库提供多种质量惊人的机器学习算法。这套库对新手非常友好,且提供简单的API供用户使用。

优点:

  • 极具可扩展性。
  • 提供Python 与C++ 绑定。

劣势:

  • 说明文档质量一般。

总结陈词

本文中讨论的各种库选项皆非常高效,且已经被时间证明拥有出色的质量。既然Facebook、谷歌、雅虎、苹果以及微软等巨头级企业都在利用这些库支持自己的深度学习与机器学习项目,您当然也没有理由拒绝,不是吗?

当然,相信大家也有着一些自己经常使用、但却未被列入本次榜单的库选项——请在评论中分享您的心得!

原文链接: https://dzone.com/articles/progressive-tools10-best-frameworks-and-libraries

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

AI框架 资源库 优点 劣势
上一篇:阿里11篇论文被AAAI2018收录 6位作者受邀赴主会做报告 下一篇:网络犯罪分子运用机器学习的这七招,你如何应对?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

PyTorch 1.0预览版发布:Facebook最新的AI开源框架

Facebook 在人工智能项目中广泛使用自己的开源 AI 框架 PyTorch,最近,他们已经发布了 PyTorch 1.0 的预览版本。PyTorch 利用 GPU 超强的运算能力 来实现复杂的 张量 计算 和 深度神经网络。 因此, 它被世界各地的研究人员和开发人员广泛使用。

Avimanyu Bandyopadhyay ·  2018-10-22 09:23:00
机器学习转化为生产力,警惕这4个常见陷阱!

几乎每个人都想在他们的业务中引入机器学习,但是这些人也遇到了一个大问题:让模型可持续发展十分困难,尤其是在云架构的基础上。medium上一位博主也指出了这个问题,并提出了将机器学习模型投入生产的4个常见陷阱。

大数据文摘 ·  1天前
500亿参数,支持103种语言:谷歌推出「全球文字翻译」模型

由于缺乏平行数据,小语种的翻译一直是一大难题。来自谷歌的研究者提出了一种能够翻译 103 种语言的大规模多语言神经机器翻译模型,在数据丰富和匮乏的语种翻译中都实现了显著的性能提升。

机器之心 ·  2天前
对于人工智能的恐惧及其5个解决方法

实施人工智能技术的IT领导人可能会感到一些恐惧,这有着充分的理由。人工智能在拥有数十年发展和应用历史的同时却有着奇怪的定位,但对于许多人来说,人工智能仍然是一种未来主义的感觉。

Kevin Casey ·  2天前
机器学习免费跑分神器:集成各大数据集,连接GitHub就能用

搞机器学习的小伙伴们,免不了要在各种数据集上,给AI模型跑分。现在,Papers with Code (那个以论文搜代码的神器) 团队,推出了自动跑分服务,名叫sotabench,以跑遍所有开源模型为己任。

栗子 鱼羊 ·  2天前
用AI实现动画角色的姿势迁移,Adobe等提出新型「木偶动画」

近日,Adobe 和康奈尔大学的研究人员提出一种基于学习的动画制作方法——基于卡通角色的少量图像样本就可生成新动画。

机器之心 ·  2天前
AI核心难点之一:情感分析的常见类型与挑战

情感分析或情感人工智能,在商业应用中通常被称为意见挖掘,是自然语言处理(NLP)的一个非常流行的应用。文本处理是该技术最大的分支,但并不是唯一的分支。情绪AI有三种类型及其组合。

Veronika Vartanova ·  2天前
AI新贵登上胡润百富榜:“CV四小龙”三家创始人上榜

AI造福人类,也造富了一些创业者。最近公布的2019胡润百富榜就是窥探老板们身价的好机会。

郭一璞 ·  2天前
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载