博舍

人工智能主流框架简介 人工智能主流框架包括哪些方面内容和特征

人工智能主流框架简介

参考:https://www.zhihu.com/question/52668301

推荐:https://www.jianshu.com/p/39561bdeac0d

一、TensorFlow:

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。TensorFlow可被用于语音识别或图像识别等多项机器学习和深度学习领域。CNN,卷及神经网络。

其实TensorFlow大部分内核并不是用Python编写的:它是高度优化了C++和CUDA(Nvidia用于编程GPU的语言)的组合。相反,通常它是使用了Eigen(高性能C++和CUDA库)和NVidia的cuDNN(用于NVidiaGPU的非常优化的DNN库,用于卷积等功能)。

TensorFlow的模型是程序员用“一种语言”(很可能是Python!)来表达。

所以说,我们再说一下这个问题:为什么TensorFlow选择Python作为表达和控制模型训练而且支持的非常好的语言?答案很简单:Python可能是大量数据科学家和机器学习专家用的最舒适的语言,也是易于集成和控制C++后端的语言,同时也是广泛使用与谷歌的公司内外和他们的开源产品。鉴于使用TensorFlow的基本模型,Python的性能并不重要,这是一个很自然的契合。NumPy也是一个巨大的加分,它可以很容易地在Python中进行预处理(也是高性能),然后将它们提供给TensorFlow,以获得真正CPU-heavy的东西。

二、Caffe(卷积神经网络框架,ConvolutionalArchitectureforFastFeatureEmbedding)

caffe是一个清晰,可读性高,快速的深度学习框架。作者是贾扬清,加州大学伯克利的ph.D,现就职于Facebook。

Caffe的全称应该是ConvolutionalArchitectureforFastFeatureEmbedding,它是一个清晰、高效的深度学习框架,它是开源的,核心语言是C++,它支持命令行、Python和Matlab接口,它既可以在CPU上运行也可以在GPU上运行。它的license是BSD2-Clause。

DeepLearning比较流行的一个原因,主要是因为它能够自主地从数据上学到有用的feature。特别是对于一些不知道如何设计feature的场合,比如说图像和speech。

Caffe的设计:基本上,Caffefollow了神经网络的一个简单假设----所有的计算都是以layer的形式表示的,layer做的事情就是take一些数据,然后输出一些计算以后的结果,比如说卷积,就是输入一个图像,然后和这一层的参数(filter)做卷积,然后输出卷积的结果。

三、MXNet

亚马逊将MXNet指定为官方深度学习平台

目前支持以下的语言:

python

R

C++

Julia

Scala

比较项CaffeTorchTheanoTensorFlowMXNet主语言C++/cudaC++/Lua/cudaPython/c++/cudaC++/cudaC++/cuda从语言Python/Matlab--PythonPython/R/Julia/Go硬件CPU/GPUCPU/GPU/FPGACPU/GPUCPU/GPU/MobileCPU/GPU/Mobile分布式NNNY(未开源)Y速度快快中等中等快灵活性一般好好好好文档全面全面中等中等全面适合模型CNNCNN/RNNCNN/RNNCNN/RNNCNN/RNN?操作系统所有系统Linux,OSX所有系统Linux,OSX所有系统命令式NYNNY声明式YNYYY接口protobufLuaPythonC++/PythonPython/R/Julia/Go网络结构分层方法分层方法符号张量图符号张量图?

人工智能常用框架

    上一讲我们简单探讨了人工智能是什么,那么既然知道是什么,下一步去搞清楚,怎么去做?用什么去做?目前市面上了,大家都是怎么做的,正所谓,工欲善其事,必先利其器,本来是个非常复杂的工程,利用工具,我们就能轻松运用和理解

下面简单介绍几种框架,帮我们实现人工智能

1.TensorFlow

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

 

语言:C++或Python。

  TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

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

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

 

优点:

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

缺点:

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

“开源深度学习工具包”

 

语言:C++。

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

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

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

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

 

 

优点:

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

缺点:

它以一种新的语言——网络描述语言(NetworkDescriptionLanguage,NDL)来实现。缺乏可视化。3.Theano

“数值计算库”

 

语言:Python。

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

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

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

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

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

 

 

优点:

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

缺点:

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

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

 

语言:C++。

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是一个用于科学和数字操作的开源机器学习库。

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

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

 

 

优点:

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

缺点:

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

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

 

语言:C#。

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

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

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

 

 

优点:

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

缺点:

不是一个非常流行的框架。比TensorFlow慢。8.SparkMLlib

“可扩展的机器学习库”

 

语言:Scala。

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

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

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

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

 

 

优点:

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

缺点:

陡峭的学习曲线。即插即用仅适用于Hadoop。9.Sci-kitLear

“用Python的机器学习”

 

语言:Python。

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

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

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

优点:

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

缺点:

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

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

 

语言:C++。

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

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

 

 

优点:

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

缺点:

不是最好的文献记录。11、Pytorch

  

2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。Pytorch和Torch底层实现都用的是C语言,但是Torch的调用需要掌握Lua语言,相比而言使用Python的人更多,根本不是一个数量级,所以Pytorch基于Torch做了些底层修改、优化并且支持Python语言调用。它是一个基于Python的可续计算包,目标用户有两类:

使用GPU来运算numpy一个深度学习平台,提供最大的灵活型和速度

10个最佳的人工智能开发框架和AI库

编辑推荐:本文主要讲解了10个人工智能开发框架和AI库分别是什么及优缺点。本文来自于云+社区,由火龙果软件Anna编辑、推荐。

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

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

1.TensorFlow

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

语言:C++或Python。

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

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

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

优点:

使用易于学习的语言(Python)。

使用计算图表抽象。

用于TensorBoard的可用性的可视化。

缺点:

这很慢,因为Python不是语言中最快的。

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

不完全开源。

2.MicrosoftCNTK

“开源深度学习工具包”

语言:C++。

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

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

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

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

优点:

这是非常灵活的。

允许分布式训练。

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

缺点:

它以一种新的语言――网络描述语言(NetworkDescriptionLanguage,NDL)来实现。

缺乏可视化。

3.Theano

“数值计算库”

语言:Python。

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

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

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

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

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

Theano

data-intensivecomputations

优点:

正确优化CPU和GPU。

有效的数字任务。

缺点:

与其他库相比,原生Theano有点低级。

需要与其他库一起使用以获得高度的抽象化。

AWS上有点bug。

4.Caffe

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

语言:C++。

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

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

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

Caffe主要的类有:

mainclasses

优点:

Python和MATLAB的绑定可用。

性能表现良好。

无需编写代码即可进行模型的训练。

缺点:

对于经常性网络不太好。

新体系结构不太好。

5.Keras

“人类的深度学习”

语言:Python。

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

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

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

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

优点:

它是用户友好的。

它很容易扩展。

在CPU和GPU上无缝运行。

与Theano和TensorFlow无缝工作。

缺点:

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

6.Torch

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

语言:C。

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

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

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

优点:

非常灵活。

高水平的速度和效率。

大量的预训练模型可用。

缺点:

不清楚的文献记录。

缺乏即时使用的即插即用代码。

它基于一种不那么流行的语言――Lua。

7.Accord.NET

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

语言:C#。

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

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

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

优点:

它有一个强大而积极的开发团队。

非常有据可查的框架。

质量可视化。

缺点:

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

比TensorFlow慢。

8.SparkMLlib

“可扩展的机器学习库”

语言:Scala。

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

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

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

这个强大的库在处理大型数据时非常快速。

优点:

对于大规模数据处理非常快速。

提供多种语言。

缺点:

陡峭的学习曲线。

即插即用仅适用于Hadoop。

9.Sci-kitLearn

“用Python的机器学习”

语言:Python。

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

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

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

优点:

许多主要算法的可用性。

有效的数据挖掘。

缺点:

不是构建模型的最佳选择。

GPU效率不高。

10.MLPack

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

语言:C++。

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

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

优点:

非常可扩展。

Python和C++绑定可用。

缺点:

不是最好的文献记录。

人工智能的三大特征

原标题:人工智能的三大特征

一、通过计算和数据,为人类提供服务

从根本上说,人工智能系统必须以人为本,这些系统是人类设计出的机器,按照人类设定的程序逻辑或软件算法通过人类发明的芯片等硬件载体来运行或工作,其本质体现为计算,通过对数据的采集、加工、处理、分析和挖掘,形成有价值的信息流和知识模型,来为人类提供延伸人类能力的服务,来实现对人类期望的一些“智能行为”的模拟,在理想情况下必须体现服务人类的特点,而不应该伤害人类,特别是不应该有目的性地做出伤害人类的行为。

二、对外界环境进行感知,与人交互互补

人工智能系统应能借助传感器等器件产生对外界环境(包括人类)进行感知的能力,可以像人一样通过听觉、视觉、嗅觉、触觉等接收来自环境的各种信息,对外界输入产生文字、语音、表情、动作(控制执行机构)等必要的反应,甚至影响到环境或人类。借助于按钮、键盘、鼠标、屏幕、手势、体态、表情、力反馈、虚拟现实/增强现实等方式,人与机器间可以产生交互与互动,使机器设备越来越“理解”人类乃至与人类共同协作、优势互补。这样,人工智能系统能够帮助人类做人类不擅长、不喜欢但机器能够完成的工作,而人类则适合于去做更需要创造性、洞察力、想象力、灵活性、多变性乃至用心领悟或需要感情的一些工作。

三、拥有适应和学习特性,可以演化迭代

人工智能系统在理想情况下应具有一定的自适应特性和学习能力,即具有一定的随环境、数据或任务变化而自适应调节参数或更新优化模型的能力;并且,能够在此基础上通过与云、端、人、物越来越广泛深入数字化连接扩展,实现机器客体乃至人类主体的演化迭代,以使系统具有适应性、灵活性、扩展性,来应对不断变化的现实环境,从而使人工智能系统在各行各业产生丰富的应用。返回搜狐,查看更多

责任编辑:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇