10个机器学习人工智能开发框架和AI库(优缺点对比表)/贪心学院

概述

通过本文我们来一起看一些用于人工智能的高质量AI库,它们的优点和缺点,以及它们的一些特点。

人工智能(AI)已经存在很长时间了。然而,由于这一领域的巨大进步,近年来它已成为一个流行语。人工智能曾经被称为一个完整的书呆子和天才的领域,但由于各种开发库和框架的发展,它已经成为一个友好的IT领域,并有很多人正走进它。

在这篇文章中,我们将研究用于人工智能的优质库,它们的优缺点以及它们的一些特征。让我们深入并探索这些人工智能库的世界!

1. TensorFlow

“使用数据流图表的可伸缩机器学习的计算”

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:C ++或Python。

当进入AI时,你会听到的第一个框架之一就是Google的TensorFlow。

TensorFlow是一个使用数据流图表进行数值计算的开源软件。这个框架被称为具有允许在任何CPU或GPU上进行计算的架构,无论是台式机、服务器还是移动设备。这个框架在Python编程语言中是可用的。

TensorFlow对称为节点的数据层进行排序,并根据所获得的任何信息做出决定。点击查看详情!

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • 使用易于学习的语言(Python)。
  • 使用计算图表抽象。
  • 用于TensorBoard的可用性的可视化。

缺点:

  • 这很慢,因为Python不是语言中最快的。
  • 缺乏许多预先训练的模型。
  • 不完全开源。

2. Microsoft CNTK

“开源深度学习工具包”

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:C ++。

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

微软的计算网络工具包是一个增强分离计算网络模块化和维护的库,提供学习算法和模型描述。

在需要大量服务器进行操作的情况下,CNTK可以同时利用多台服务器。

据说它的功能与Google的TensorFlow相近;但是,它会更快。在这里了解更多。

 

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • 这是非常灵活的。
  • 允许分布式训练。
  • 支持C ++、C#、Java和Python。

缺点:

  • 它以一种新的语言——网络描述语言(Network Description Language , NDL)来实现。
  • 缺乏可视化。

3. Theano

“数值计算库”

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:Python。

Theano是TensorFlow的强有力竞争者,是一个功能强大的Python库,允许以高效率的方式进行涉及多维数组的数值操作。

Theano库透明地使用GPU来执行数据密集型计算而不是CPU,因此操作效率很高。

出于这个原因,Theano已经被用于为大规模的计算密集型操作提供动力大约十年。

然而,在2017年9月,宣布Theano的主要开发将于2017年11月发布的1.0版本后停止。

这并不意味着它是一个不够强大的库。你仍然可以随时进行深入的学习研究。在这里了解更多。

 

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • 正确优化CPU和GPU。
  • 有效的数字任务。

缺点:

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

4. Caffe

“快速、开源的深度学习框架”

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:C ++。

Caffe是一个强大的深度学习框架。

像这个清单上的其他框架一样,深度学习的研究速度非常快。

借助Caffe,您可以非常轻松地构建用于图像分类的卷积神经网络(CNN)。Caffe在GPU上运行良好,这有助于在运行期间提高速度。查看主页获取更多信息。

Caffe主要的类有:

 

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • Python和MATLAB的绑定可用。
  • 性能表现良好。
  • 无需编写代码即可进行模型的训练。

缺点:

  • 对于经常性网络不太好。
  • 新体系结构不太好。

5. Keras

“人类的深度学习”

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:Python。

Keras是一个用Python编写的开源的神经网络库。

与TensorFlow、CNTK和Theano不同,Keras不是一个端到端的机器学习框架。

相反,它作为一个接口,提供了一个高层次的抽象化,这使得无论它坐落在哪个框架上,神经网络的配置都会变得容易。

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

 

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • 它是用户友好的。
  • 它很容易扩展。
  • 在CPU和GPU上无缝运行。
  • 与Theano和TensorFlow无缝工作。

缺点:

  • 不能有效地用作独立的框架。

6. Torch

“一个开源的机器学习库”

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:C。

Torch是一个用于科学和数字操作的开源机器学习库。

这是一个基于Lua编程语言而非Python的库。

Torch通过提供大量的算法,使得深度学习研究更容易,并且提高了效率和速度。它有一个强大的N维数组,这有助于切片和索引等操作。它还提供了线性代数程序和神经网络模型。点击查看详情!

 

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • 非常灵活。
  • 高水平的速度和效率。
  • 大量的预训练模型可用。

缺点:

  • 不清楚的文献记录。
  • 缺乏即时使用的即插即用代码。
  • 它基于一种不那么流行的语言——Lua。

7. Accord.NET

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

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:C#。

这是专为C#程序员设计的。

Accord.NET框架是一个.NET机器学习框架,使音频和图像处理变得简单。

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

 

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • 它有一个强大而积极的开发团队。
  • 非常有据可查的框架。
  • 质量可视化。

缺点:

  • 不是一个非常流行的框架。
  • 比TensorFlow慢。

8. Spark MLlib

“可扩展的机器学习库”

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:Scala。

Apache的Spark MLlib是一个非常可扩展的机器学习库。

它非常适用于诸如Java、Scala、Python,甚至R等语言。它非常高效,因为它可以与Python库和R库中的numpy进行互操作。

MLlib可以轻松插入到Hadoop工作流程中。它提供了机器学习算法,如分类、回归和聚类。

这个强大的库在处理大型数据时非常快速。在网站上了解更多信息。

 

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • 对于大规模数据处理非常快速。
  • 提供多种语言。

缺点:

  • 陡峭的学习曲线。
  • 即插即用仅适用于Hadoop。

9. Sci-kit Lear

“用Python的机器学习”

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:Python。

Sci-kit learn是一个非常强大的机器学习Python库,主要用于构建模型。

使用numpy、SciPy和matplotlib等其他库构建,对统计建模技术(如分类、回归和聚类)非常有效。

Sci-kit learn带有监督学习算法、无监督学习算法和交叉验证等功能。点击查看详情!

优点:

  • 许多主要算法的可用性。
  • 有效的数据挖掘。

缺点:

  • 不是构建模型的最佳选择。
  • GPU效率不高。

10. MLPack

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

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

语言:C ++。

MLPack是一个用C ++实现的可扩展的机器学习库。因为它是用C ++编写的,所以你可以猜测它对于内存管理是非常好的。

MLPack以极高的速度运行,因为高质量的机器学习算法与库一起出现。这个库是对新手友好的,并提供了一个简单的API使用。点击查看详情!

 

10个机器学习人工智能开发框架和AI库(优缺点对比表)

 

优点:

  • 非常可扩展。
  • Python和C ++绑定可用。

缺点:

  • 不是最好的文献记录。

总结

本文讨论的库非常有效,并且随着时间的推移已经证明都是高质量的。像Facebook、谷歌、雅虎、苹果和微软这样的大公司都利用其中的一些库来进行深度学习和机器学习项目,那么你为什么不呢?

你能想到你经常使用的但并不在这个列表中的其他库吗?请在评论区留言与我们分享!

本文原作者:Anton Shaleynikov

转载于:https://www.cnblogs.com/txkjai/p/10833709.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据时代的数据存储,非关系型数据库MongoDB(一)(转)

出处:http://www.cnblogs.com/mokafamily/p/4076954.html 爆炸式发展的NoSQL技术 在过去的很长一段时间中,关系型数据库(Relational Database Management System)一直是最主流的数据库解决方案,他运用真实世界中事物与…

在一个类型的继承体系中,成员的构造顺序

先看代码,写出结果 class A { public A() { PrintFields(); } public virtual void PrintFields(){} } class B:A { int x1; int y; public B…

IntelliJ IDEA+Mysql connecter/j JDBC驱动连接

在IntelliJ IDEA中用connecter/j jdbc驱动连接MYSQL 以下是解决过程,待整合。。。有点懒,有空再改 官方文档:https://www.cnblogs.com/cn-chy-com/p/10145690.html 创建了mysql新用户:https://blog.csdn.net/weixin_38091140/arti…

mysql类exadata功能_Exadata V2数据库一体机的几大致命缺点

昨天客户语重心长的告诉我,他们准备把Exadata V2 上的核心应用迁移走,客户在09年就开始用Exadata,是不是国内第一家我不知道,但至少应该是用于生产的第一批。但是这2年来因为Exadata折腾了无数次,现在终于不想折腾了。…

mysql gtid寻找位置_【MySQL】UUID与GTID以及如何根据GTID找寻filename和position

Open Group于1997年10月发布,UUID遵从此协议。UUID被设计成一个在空间和时间上的唯一值。两次调用的UUID将产生两个不同的值,即使这些调用是在两个不连接的,彼此独立的计算机。由一串数字表示aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeformat:mys…

(56)zabbix Screens视图配置

screen翻译成中文为“屏幕”,在超市、单位等等地方都比较常见到监控视频,视频上有多块小视频,实际上zabbix screen和这个功能类似。你可以设置多个screen,每个screen可以显示特定信息,例如某台主机的cpu、内存、硬盘、…

spacy库的安装与使用_为 SpaCy 提供的中文数据模型

SpaCy 中文模型为 SpaCy 提供的中文数据模型. 模型目前还处于 beta 公开测试的状态 。在线演示基于 Jupyter notebook 的在线演示在 。 特性部分 王小明在北京的清华大学读书 这个 Doc 对象的属性信息:NER (New!)部分 王小明在北京的清华大学读书 这个 Doc 对象的 NER 信息:开始…

ASP对很长的文章做分页输出

阅读: 1 评论: 0 作者: eng308 发表于 2010-02-03 10:33 原文链接利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好。很简单,在要截断的地方附近找下面的符号:;’”&a…

软件性能测试的本质

为什么80%的码农都做不了架构师?>>> ‍ 淘宝网每年的双11活动都是对其服务器性能的挑战。因为在这一天所有商品半价,购物的用户量剧增。做为淘宝网的高层更多的关心在线用户数,用户交易量,总交易金额等,做…

mysql周报内容范文_Mysql各种报表查询含实例,日报,周报,月报,时间差自动计算...

public List retrieve(IReport report) {List list new ArrayList();Map map new HashMap();// 设置结束日期if (null ! report.getEndTime()) {map.put(ReportMeta.PROP_ENDTIME, report.getEndTime());// 设置名称if (null ! report.getName()) {map.put(ReportMeta.PROP_N…

路由器01---k2刷Pandora

1.固件 固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。 对于独立可操作的电子产品,固件一般指它的操作系统(“担任着一个数码产品最基础、最底层工作的软件才可以称之为固件”&…

python中squeeze函数_详解pytorch中squeeze()和unsqueeze()函数介绍

squeeze的用法主要就是对数据的维度进行压缩或者解压。先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的数去掉第一个维数为一的维度之后就变成(3)行。squeeze(a)就是…

新闻网大数据实时分析可视化系统项目——7、Kafka分布式集群部署

Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。 1.下载Kafka并安装 1)下载Apache版本的Kafka。 …

关于Excel导入的问题记录

当Excel导入成为需要时,之前的导出Excel为html方式的方法就受阻了,于是,需要开始新的百度与google来解决问题。 前提为OLEDBExcel。 根据需求,多数是对于表的数据的导入。于是产生这么一个需求过程: 1。准备一个空的标…

AIX-vi操作-提示Unknown terminal type的问题解决方法

AIX-vi操作-提示Unknown terminal type的问题解决方法AIX Version 5.3$ vi /etc/profilelinux: Unknown terminal type[Hit return to continue] :q!I dont know what kind of terminal you are on - all I have is linux.[Using open mode]……临时办法,下次启动失…

Java性能调优工具

2019独角兽企业重金招聘Python工程师标准>>> 1、JDK命令行工具 1.1、jps命令 jps用于列出Java的进程,jps可以增加参数,-m用于输出传递给Java进程的参数,…

python3将字符串unicode转换为中文

在我们的python使用过程中,可能会遇到这样的情况: 我们得到的中文数据是unicode编码类型的,这在python中是没有问题的,可以直接打印显示为中文。 但是,如果我们需要和其它语言或前端进行交互或需要存到数据库中的时候&…

连接SQL Server文件集锦

在新建SqlConnection对象,连接资料库时连接失败,出现“常规网络错误。请检查您的网络文档。” DataSource直接写IP的话,通信协议是按照TCP/IP协议连接的,如果服务器端TCP/IP服务没有开启,则会报错“不允许远程连接” A…

python 波形发生_事件与信号

事件 Event所有的GUI程序都是事件驱动的。事件主要由用户触发,但也可能有其他触发方式:例如网络连接、window manager或定时器。当我们调用QApplication的exec_()方法时会使程序进入主循环。主循环会获取并分发事件。在事件模型中,有三个参与…

数据结构与算法6—树

树 树的表示方式有 树形图表示法:逻辑结构描述直观 嵌套集合表示法(文氏图表示法) 凹入表示法 广义表表示法 二叉树 二叉树是另一种重要的树形结构,是度为2的有序树,它的特点是每个结点至多有两棵子树。 二叉树的递归定义 二叉树…