人工智能已经存在了很长时间。 然而,由于该领域的巨大改进,近年来它已成为流行语。 人工智能曾经被称为总体书呆子和天才的领域,但由于各种库和框架的发展,它已成为一个更友好的IT领域,并有很多人进入它。
在本文中,我们将研究用于人工智能的高质量库,它们的优缺点以及它们的一些功能。 让我们潜入并探索这些AI库的世界!
1. TensorFlow
“使用数据流图进行计算,实现可扩展的机器学习。”
语言:C ++或Python。
进入AI时,您会听到的第一个框架是Google的TensorFlow。
TensorFlow是一个开源软件,用于使用数据流图进行数值计算。 该框架以具有允许在任何CPU或GPU上进行计算的架构而闻名,无论是桌面,服务器还是移动设备。 该框架以Python编程语言提供。
TensorFlow对称为节点的数据层进行排序,并根据获取的任何信息做出决策。
优点:
使用易于学习的语言(Python)。
使用计算图形抽象。
TensorBoard可用于可视化。
缺点:
它很慢,因为Python不是最快的语言。
缺乏许多预先训练过的模型。
不是完全开源的。
如果你想更加了解TensorFlow,或者说想实践一下人工智能项目,谷歌的另一款工具或许可以帮到你,也就是谷歌的AIY Projects 项目。
AIY Projects 包含两款硬件--AIY Voice Kit 和 AIY Vision Kit。其中AIY Vision Kit(视觉套件)是一套简单的计算机视觉系统,可运行 3 种基于 TensorFlow 的类神经网路模型应用程序。
2. Microsoft CNTK
“一个开源深度学习工具包。”
语言:C ++。
我们可以将此认为是微软对谷歌TensorFlow的回应。Microsoft的Computational Network ToolKit是一个增强模块化和维护分离计算网络的库,提供学习算法和模型描述。
在需要大量服务器进行操作的情况下,CNTK可以同时利用许多服务器。
它据说与谷歌的TensorFlow功能相近; 但是,它有点快。
优点:
它非常灵活。
允许分布式培训。
支持C ++,C#,Java和Python。
缺点:
它以新语言网络描述语言(NDL)实现。
缺乏可视化。
3. Theano
“一个数值计算库。”
语言:Python。
作为TensorFlow的强大竞争对手,Theano是一个功能强大的Python库,允许涉及具有高效率的多维数组的数值运算。
该库透明地使用GPU来执行数据密集型计算而不是CPU,从而提高了运算效率。
出于这个原因,Theano已被用于为大规模计算密集型操作提供动力大约十年。
然而,2017年9月宣布,Theano的主要开发项目将在2017年11月发布的1.0版本发布后停止。
这并不意味着它在任何方面都是一个功能较弱的库。 您仍然可以随时使用它进行深度学习研究。
优点:
针对CPU和GPU进行了适当优化。
高效的数字任务。
缺点:
与其他库相比,原始Theano略低。
需要与其他库一起使用才能获得高级抽象。
AWS上有点儿bug多。
4. Caffe
“快速,开放的深度学习框架。”
语言:C ++。
Caffe是一个强大的深度学习框架。
与此列表中的其他框架一样,它对于深度学习研究来说非常快速有效。
使用Caffe,您可以非常轻松地构建用于图像分类的卷积神经网络(CNN)。 Caffe在GPU上工作得很好,这有助于它在运营期间的速度。 查看主页以获取更多信息。
Caffe主要class:
优点:
可以使用Python和MATLAB的绑定。
很好的表现;很好的绩效。
允许在不编写代码的情况下训练模型。
缺点:
经常性网络不好。
新架构并不是很好。
5. Keras
“深入学习人类。”
语言:Python。
Keras是一个用Python编写的开源神经网络库。
与TensorFlow,CNTK和Theano不同,Keras并不是一个端到端的机器学习框架。
相反,它充当接口并提供高级抽象,这使得无论其所处的框架如何,都可以轻松配置神经网络。
谷歌的TensorFlow目前支持Keras作为后端,微软的CNTK将在很短的时间内完成相同的工作。
优点:
它用户友好。
它很容易扩展。
在CPU和GPU上无缝运行。
与Theano和TensorFlow无缝协作。
缺点:
无法有效地用作独立框架。
6. Torch
“一个开源机器学习库。”
语言:C
Torch是一个用于科学和数值运算的开源机器学习库。
这是一个基于 - 不,不是Python - Lua编程语言的库。
通过提供大量算法,它可以使深度学习研究更容易,并提高效率和速度。 它具有强大的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,谷歌,雅虎,苹果和微软这样的大公司将这些库中的一些用于深度学习和机器学习项目,国内的程序员们也赶紧加油学习起来吧!