人工智能图片专题
©汉华易美视觉科技有限公司AllRightsReserved 苏ICP备19044258号-25 苏B2-20191025 苏公网安备32041202001826号 出版物经营许可证 网络文化经营许可证
违法和不良信息举报电话:400-818-2525 举报邮箱:jubao@vcg.com 隐私问题反馈邮箱:privacy@vcg.com
江苏省常州市武进区西太湖科技产业园禾香路123号6号楼一楼102室
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++绑定可用。
缺点:
不是最好的文献记录。
人工智能领域常用的开源框架和库(含机器学习/深度学习/强化学习/知识图谱/图神经网络)
【说在前面】本人博客新手一枚,象牙塔的老白,职业场的小白。以下内容仅为个人见解,欢迎批评指正,不喜勿喷![认真看图][认真看图]
【补充说明】本文主要讨论人工智能领域中常用的支持Python编程语言的开源框架和库,因此全面性肯定有限!
一、机器学习常用的开源框架和库1.Scikit-learn作为专门面向机器学习的Python开源框架,Scikit-learn内部实现了多种机器学习算法,容易安装和使用,样例丰富。
2. Mahout在大数据分布式框架Hadoop下使用,包含了机器学习中常用的算法(含推荐算法)。
3.MLlib/spark.ml在大数据分布式框架Spark下使用,同样包含了机器学习中常用的算法,可采用Java/Sacala/Python/R语言作为编程语言。
4.其他例如针对计算机视觉的SimpleCV、针对自然语言处理的NLTK等,这里不再拓展。
二、深度学习常用的开源框架和库1.TensorFlow由GoogleBrain团队开发,能够实现各种深度神经网络的搭建。为初学者和专家提供了各种API,以便对桌面、移动终端、Web和云进行开发。但是,计算图必须构建为静态图,这让很多计算变得难以实现,尤其是序列预测中经常使用的beamsearch。
2.Keras由Python编写的高级神经网络API,相当于Tensorflow、Theano、CNTK的上层接口。强调极简主义,降低了编程和阅读别人代码时的理解开销, 目前封装有全连接网络、CNN、RNN和LSTM等算法。但是,封装得太高级,细节很难修改,无法直接使用多GPU。
3.PyTorch由Facebook团队基于Torch开发的深度学习框架。与TensorFlow不同的是,PyTorch是基于动态图的,目前也非常火热。
4.Caffe在TensorFlow出现之前,一直是深度学习领域Githubstar最多的项目。Caffe的优势在于容易上手(网络结构都是以配置文件形式定义,不需要用代码设计网络)、训练速度快(组件模块化,可以方便的拓展到新的模型和学习任务上)。但是,Caffe不好安装,且最开始设计时的目标只针对于图像,因此对CNN的支持非常好(例如AlexNet、VGG、Inception等),但是对RNN、LSTM等的支持不是特别充分。
5.其他例如百度提出的深度学习框架PaddlePaddle、华为最新开源的深度学习框架MindSpore、阿里的X-DeepLearning等,这里不再拓展。
三、强化学习常用的开源框架和库1. OpenAIGym提供了非常多的虚拟环境,具体强化学习算法的代码需要自己来写,可以很好验证强化学习算法,众多强化学习环境都为其提供接口。
2.OpenAIBaseline基于Tensorflow和OpenAIGym开发的,封装了许多强化学习算法(例如DQN/PPO/TRPO/DDPG等)。但是,代码规范性不好。
3.RLlib支持TensorFlow和PyTorch,可通过简单的PythonAPI使用,目前附带了许多流行的RL算法。
4.HorizonFacebook基于PyTorch、Caffe和Spark构建的强化学习框架,是首个使用应用强化学习在大规模生产环境中优化系统的端到端开源平台。
5.天授:最近了解的,应该比较新吧清华大学人工智能研究院自研的深度强化学习算法平台,支持TensorFlow和PyTorch。可以完整支持PG、DQN、DDQN、A2C、DDPG、PPO、TD3、SAC等主流强化学习算法。对比既有主流强化学习平台,大佬给出了天授的性能对比图:
未来大佬团队将从三个维度拓展“天授”平台,算法层面将更加全面支持地支持主流强化学习算法(包括model-basedRL,imitationlearning等),任务层面将进一步支持包括Atari、VizDoom等复杂任务,性能层面将进一步提升平台在模型性能、训练速度、鲁棒性等方面的核心指标,更好的为学术界服务。
6.其他例如知乎有人提到的tf-agents(与工业紧密连接)、tensorlayer、百度PaddlePaddle发布的PARL等,这里不再拓展。
四、图神经网络常用的开源框架和库1.四大图神经网络框架deepgraphlibrary(DGL):支持pytorch、tensorflowpytorchgeometric(PyG):基于pytorchantgraphmachinelearningsystem:蚂蚁金服团队推出的大规模图机器学习系统tf_geometric:借鉴pytorchgeometric,创建了tensorflow版本2.CogDL :最近了解的,应该比较新吧清华大学知识工程研究室推出了一个大规模图表示学习工具包CogDL,可以让研究者和开发者更加方便地训练和对比用于节点分类、链路预测以及其他图任务的基准或定制模型。该工具包采用PyTorch实现,集成了Deepwalk、LINE、node2vec、GraRep、NetMF、NetSMF、ProNE等非图神经网络和GCN、GAT、GraphSage、DrGCN、NSGCN、GraphSGAN等图神经网络模型基准模型的实现。
与其他图表示学习工具包相比,CogDL具有以下特点:
稀疏性:在具有数千万节点的大规模网络上实现快速网络嵌入。任意性:能够处理属性化、多路和异构等不同图结构的网络。并行处理:在多个GPU上实现不同种子和模型的并行训练并自动输出结果表格。可扩展性:轻松添加新的数据集、模型和任务并在所有现有的模型/数据集上测试。3.Graph-Learn(原AliGraph):一个工业级的图神经网络平台阿里巴巴提出的AliGraph涵盖了从原始图数据到GNN应用的整体链路。根据阿里巴巴的介绍:系统层面:数据种类:支持同构图、异构图、属性图,有向图、无向图,可方便与任意分布式文件系统对接。数据规模:支持千亿级边、十亿级顶点的超大规模图(原始存储TB级)。算子种类:支持几十种可与深度学习相结合的图查询、采样算子,支持向量检索,支持算子按需自定义。性能指标:支持分钟级超大规模图构建,毫秒级多跳异构图采样,毫秒级大规模向量检索。用户接口:纯Python接口,与TensorFlow构成一体化IDE,开发成本相比一般TF模型无异。算法层面:
已支持业界主流的GraphEmbedding算法,包括:DeepWalk、Node2Vec、GraphSAGE、GATNE等。4.其他图神经网络研究者和工业界在Github上开源了很多算法的具体实现及其框架,包括GCN、GAT、GraphNets框架等,这里不再拓展。
五、知识图谱常用的开源框架和库1.开源的知识库主要包括WikiData、DBPedia、WordNet、YAGO、ConceptGraph、BabelNet、CN-DBPeidia、OpenKG等,这里不再拓展。
2.开源的构建工具斯坦福大学医学院生物信息研究中心提出的Protege是基于Java语言开发的本体编辑和知识获取软件。Protege提供本体概念类、关系、属性和实例的构建,不基于具体的本体描述语言,因此用户可以在概念层次上构建领域本体模型。除了Protege,还有其他应用于知识图谱构建的开源软件,而且完整的知识图谱构建还包括知识的存储、知识融合等。我想后续单独写一个专题来介绍知识图谱的构建问题,这里不再拓展。
3.DGL-KE:亚马逊提出的知识图谱嵌入表示框架亚马逊AI团队继DGL之后,又开源了一款专门针对大规模知识图谱嵌入表示的新训练框架DGL-KE,旨在能让研究人员和工业界用户方便、快速地在大规模知识图谱数据集上进行机器学习训练任务。相比于已有的开源框架,DGL-KE的亮点如下:支持各种主流知识图谱表示学习算法,包括TransE、ComplEx、DistMult、TransR、RESCAL、RotatE等。已有开源框架中唯一支持多核CPU,多卡GPU,CPU-GPU混合训练,以及分布式训练的知识图谱嵌入表示框架。简单易用,用户无需编写代码,直接将知识图谱数据作为输入即可。高性能且可扩展。4.其他知识图谱研究者和工业界在Github上应该开源了很多方法的具体实现及其框架,博主有看到再分享,这里不再拓展。
六、智能推荐常用的开源框架和库1.DeepMatch:用于广告和推荐的深度召回匹配算法库提供了若干主流的深度召回匹配算法的实现,并支持快速导出用户和物品向量进行ANN检索。非常适合同学们进行快速实验和学习。
2.其他智能推荐研究者和工业界在Github上应该开源了很多方法的具体实现及其框架,博主有看到再分享,这里不再拓展。
如果你对智能推荐感兴趣,欢迎先浏览我的另几篇随笔:智能推荐算法演变及学习笔记、CTR预估模型演变及学习笔记、基于图模型的智能推荐算法学习笔记(含知识图谱/图神经网络,不止于智能推荐)
如果您对数据挖掘感兴趣,欢迎浏览我的另几篇博客:数据挖掘比赛/项目全流程介绍、从中国农业银行“雅典娜杯”数据挖掘大赛看金融行业数据分析与建模方法
如果您对人工智能算法感兴趣,欢迎浏览我的另一篇博客:人工智能新手入门学习路线和学习资源合集(含AI综述/python/机器学习/深度学习/tensorflow)
如果你是计算机专业的应届毕业生,欢迎浏览我的另外一篇博客:如果你是一个计算机领域的应届生,你如何准备求职面试?
如果你是计算机专业的本科生,欢迎浏览我的另外一篇博客:如果你是一个计算机领域的本科生,你可以选择学习什么?
如果你是计算机专业的研究生,欢迎浏览我的另外一篇博客:如果你是一个计算机领域的研究生,你可以选择学习什么?
如果你对金融科技感兴趣,欢迎浏览我的另一篇博客:如果你想了解金融科技,不妨先了解金融科技有哪些可能?
之后博主将持续分享各大算法的学习思路和学习笔记:helloworld:我的博客写作思路
人工智能图片
关于我们版权声明版权保障VIP服务热门搜索今日热门联系电话:021-36170220
商务合作:15921797502(同微信)
联系客服订阅号服务号上海韩众网络科技有限公司|地址:上海浦东新区东方路3539号2号楼3楼|电话:021-36170220(09:00-18:00)如网民接到962110电话,请立即接听。
Copyright©2015-2023摄图网沪ICP备15050430号-1ICP证沪B2-20180118沪公网安备31011502008153号上海工商上海互联网违法和不良信息举报中心用时:0.0751秒秒
广播电视节目制作经营许可证(沪)字第02702号网络文化经营许可证沪网文{2022}1459-054号出版物经营许可证新出发沪批字第Y8341号《摄图网络服务使用协议》《摄图隐私政策》