前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【干货】十大流行AI框架和库的优缺点分析

【干货】十大流行AI框架和库的优缺点分析

作者头像
AiTechYun
发布2018-03-01 17:46:17
1.9K0
发布2018-03-01 17:46:17
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

近年来,由于AI领域的迅猛发展,AI这一词汇已经成为一个流行语。AI曾被称为是一个书呆子和天才的领域,但由于各种库和框架的发展,使更多的人开始了他们的AI之旅。

不知道自己应该选哪个AI框架和库?看看本文就知道了。本文为AI开发工程师们梳理了现在最流行的框架和库,并简单分析了它们的优缺点。

1.TensorFlow

语言:C++或Python。

当你进入AI时,你听到的框架之一就是Google的TensorFlow,TensorFlow是一个使用数据流图进行数值计算的开源框架。这个框架被称为具有允许在任何CPU或GPU上进行计算的架构,而且这个框架在Python编程语言中是可用的,这也是Python大火的原因。

TensorFlow是通过称为节点的数据层进行排序,并根据获得的信息做出决定。

优点: —使用易于学习的语言(Python) —使用计算图抽象 —可以使用可视化的TensorBoard

缺点: —它很慢,因为Python不是编程语言中最快的 —不完全开源 —缺乏许多预先训练的模型

2.CNTK

语言:C++。

我们可以称之为它是微软对Google的TensorFlow的回应。

微软的CNTK是一个增强分离计算网络模块化和维护的库,它提供了学习算法和模型描述。在需要大量服务器进行操作的情况下,CNTK可以同时利用多台服务器。

据说它的功能与Google的TensorFlow相近,但是,它更快。

优点: —允许分布式培训 —支持C++,C#,Java和Python —非常灵活

缺点: —缺乏可视化 —它以一种新的语言——Network Deion Language(NDL)来实现

3.Theano

语言:Python。

Theano允许以高效率的方式进行多维数组的数值操作,是一个功能强大的Python库。

该库透明地使用GPU来执行数据密集型计算而不是CPU,因此操作效率很高。出于这个原因,Theano已经被用于为大规模的计算密集型操作长达十年的时间。然而,于2017年9月,Theano的1.0版本停止。

优点: —有效的计算任务 —优化CPU和GPU

缺点: —需要与其他库一起使用以获得高度的抽象 —AWS使用它上有点bug —与其他库相比,原生Theano有点低级

4.Caffe

语言:C++。

Caffe是一个强大的深度学习框架,借助Caffe,你可以非常轻松地构建用于图像分类的卷积神经网络(CNN)。

Caffe主类:

优点: —无需编写代码即可进行模型的训练 —Python和MATLAB都可用

缺点: —对于RNN网络不太友好 —对于新体系结构不太友好

5.Keras

语言:Python。

Keras是一个用Python编写的开源的神经网络库,且并不是一个端到端的机器学习框架。相反,它作为一个接口,提供了一个高层次的抽象,这使得神经网络的配置变得简单,无论它坐在哪个框架上。

谷歌的TensorFlow目前支持Keras作为后端,而微软的CNTK也会在很短的时间内做到这一点。

优点: —很容易扩展 —在CPU和GPU上无缝运行 —与Theano和TensorFlow无缝工作

缺点: —不能有效地用作独立的框架

6.Torch

语言:C。

Torch是一个用于科学和数字操作的开源机器学习库,且是一个基于Lua编程语言的库而不是Python。

它通过提供大量的算法,使得深度学习研究更容易,且有一个强大的N维数组,这有助于切片和索引等操作。除此之外,提供了线性代数程序和神经网络模型。

优点: —非常灵活 —高水平的速度和效率 —大量的预训练模型可用

缺点: —缺乏即时使用的代码 —基于一种不那么流行的语言,Lua

7.Accord.NET

语言:C#。

这是一个为C#程序员存在的机器学习框架,Accord.NET框架是一个.NET机器学习框架,使音频和图像处理变得简单。

这个框架可以有效地处理数值优化,人工神经网络,甚至可视化。除此之外,Accord.NET对计算机视觉和信号处理功能非常强大,同时也使得算法的实现变得简单。

优点: —有据可查的框架 —有质量可视化

缺点: —比TensorFlow慢

8.Spark MLlib

语言:Scala。

Apache的Spark MLlib是一个非常可扩展的机器学习库。它非常适用于Java,Scala,Python甚至R等语言。它非常高效,因为它可以与Python库和R库中的numpy进行互操作。

它还提供了机器学习算法,如分类,回归和聚类。这个强大的库在处理大型数据时非常快速。

优点: —提供支持多种语言 —对于大规模数据非常快速

缺点: —即插即用仅适用于Hadoop

9.Sci-kit learn

语言:Python。

Sci-kit learn是一个机器学习Python库,主要用于构建模型。Sci-kit学习带有监督学习算法,无监督学习算法和交叉验证等功能。

优点: —许多主要算法的可用性很高 —能够进行有效的数据挖掘

缺点: —不是创建模型的最佳选择 —GPU效率不高

10.MLPack

语言:C++。

MLPack是一个用C ++实现的可扩展的机器学习库,它对于内存管理非常好。

MLPack以极高的速度运行,可以支持高质量的机器学习算法与库一起运行,而且还提供了一个简单的API帮助新手使用。

优点: —非常容易扩展 —Python和C++都可用

缺点: —暂时没有相关参考资料

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档