2020 年最具潜力 44 个顶级开源项目,涵盖 11 类 AI 学习框架、平台

这篇文章大约7904字,建议阅读10分钟。本文介绍了一个基于javascript的可视化库D3js(树形图可视化)来生成json文件的技术图,为开发人员提供了一个详细的工具列表。

如果一个工人想做好事,他必须首先使用他的工具。这也是大多数开发人员在日常工作中最重要的开发原则。选择与开发内容相匹配的工具通常会让我们事半功倍。然而,面对人工智能的许多领域,如机器学习、深度学习、自然语言处理等,各种工具有时让我们别无选择。

就在最近,一个基于javascript的可视化库D3js(树形图可视化)为开发人员提供了各种领域的工具的详细列表,涵盖了11种具有巨大潜力的人工智能工具。我们把它们分类如下。强烈建议您收集~

catalog:

,经典机器学习(1-3)

,深度学习(4-8)

,强化学习(9-12)

,自然语言处理(13-18)

,语音识别(19-21)

,计算机视觉(22-26)

,分布式训练(27-31)

,自动建模(3239.2k星?Fork 19.2k

scikit-learn是一个基于Python语言的强大的机器学习算法库。其中包括算法预处理、模型参数选择、回归和分类等算法。官方文件包括每个算法的例子。代码简洁优美。它将每个算法的结果可视化。它可以学习python,也是帮助开发人员更好地理解机器学习算法的便利工具。

特别是在监督学习部分,Sciket-learn提供算法教程,如广义线性模型、支持向量机、最近邻算法、高斯过程、朴素贝叶斯、决策树和集成方法等。同时,还介绍了监督学习中一些非常重要的概念,如特征选择、随机梯度下降算法、线性和二次判别分析等。半监督学习中的标签传播算法和无监督学习中的聚类和降维算法也有很多教程。

ii。xgboststar 18.3k?Fork7.3K

XGBOST,全称是极限灰度增强,在灰度增强的框架下实现了C机器学习算法。

XGBoost的最大特点是可以自动利用CPU的多线程进行并行,同时改进算法以提高准确性。它是一个优化的分布式梯度升级库,具有很强的可扩展性、高效性、灵活性和可移植性。

它可以用来为生产级计算机视觉、计算机听觉、信号处理和统计应用建立一个完整的框架,甚至用于商业目的。它还提供统计分析,机器学习,图像处理和计算机视觉相关的算法。NET应用程序。

二。深入学习工具

TensorFlow 2019相关数据

iv。tendorflow star141k?Fork 79.8k

TensorFlow是一个端到端的机器学习开源平台(),也是2019年GitHub上最受欢迎的项目。

它有一个由工具、库和社区资源组成的全面而灵活的生态系统,提供稳定的Python和C API,以及其他语言中不保证向后兼容的API。它可以帮助开发人员在最大似然法领域进行研究和开发,并使开发人员更容易构建和部署最大似然法支持的应用程序。

v. PyTorch star 35.8k?Fork 9k

PyTorch是TensorFlow的强大竞争对手,也是更主流的深度学习工具之一。

PyTorch是一个开源的机器学习框架,它提供了两个高级功能,包括具有强大GPU加速的张量计算(如NumPy)和基于磁带自动调整系统的深度神经网络。它可以加快从原型研究到生产部署的过程。

此前,OpenAI正式宣布了“完全转向PyTorch”的消息,并计划将自己平台的所有框架整合到PyTorch中,进一步展示PyTorch的深度学习潜力。

vi。MXNET之星18.4k?Fork 6.5k

MXNet是一个功能齐全、可编程和可扩展的深度学习框架,支持最先进的深度学习模型()。

MXNet提供混合编程模型(命令式和声明式)和大量编程语言代码(包括python、C、R、Scala、Julia、Matlab和JavaScript)。这是一个易于安装和使用的开源深度学习工具。它提供了一个Python接口gluon,使开发人员能够快速构建神经网络并进行有效的培训。

7。十四行诗之星8.1k?Fork 1.2k

Sonnet由DeepMind发布,用于在张量流上构建复杂神经网络的开源库。

十四行诗主要用于让DeepMind开发的其他模型更容易共享。Sonnet可以在其他内部子模块中编写模块,或者在构建新模块时将其他模型作为参数传递。与此同时,Sonnet提供了处理这些任意层次的实用程序,因此可以使用不同的RNN进行实验,并且整个过程不需要繁琐的代码重写。

8,DL4J星11.5k?Fork 4.8k

DL4J是一个由java和jvm编写的开源深度学习库,它支持各种深度学习模型。DL4J最重要的特性是它支持分发,并且可以在Spark和Hadoop上运行。它支持分布式的中央处理器和图形处理器,可以使用Spark在多个服务器和多个图形处理器上进行分布式的深度学习模型训练,使模型运行更快。

DL4J的基本特征包括:DL4J中的神经网络训练是通过聚类迭代并行计算的;整个过程由Hadoop和Spark架构支持。使用Java允许开发者在Android设备的开发周期中使用它。

三。强化学习工具

ix,健身之星19.6k?Fork 5.5k

Gym是一个开发和比较强化学习算法的工具。

它不需要代理的先验知识,并且使用python作为主要的开发语言,因此它可以简单地开发和集成深度学习库,例如TensorFlow,并且用图片直观地显示学习结果。体育馆图书馆包含许多测试问题(即环境),可以用来制定强化学习算法。这些环境具有共享接口,并允许编写通用算法。

一个基于张量流的框架,旨在为新手和有经验的强化学习研究者提供具有灵活性、稳定性和可重复性的新工具。

这个框架的灵感来自多巴胺受体,它是大脑中奖励-动机行为的主要组成部分,反映了神经科学和强化学习研究之间的强大历史联系,是强化学习算法快速原型的研究框架。

Xi,试剂之星2.4k?Fork 312

Facebook引入了一个模块化的端到端平台来构建决策推理系统,该平台用于推理系统(强化学习、上下文管理等)。),并且可以显着简化建立推理模型的过程。

试剂由三部分组成:一个用于生成决策和接收决策反馈的模型,一个用于评估新模型部署前性能的模块,以及一个快速迭代服务平台。同时,试剂也是创建基于人工智能的推理系统的最全面、最模块化的开源平台,也是第一个包含策略评估的平台,这将加速相关决策系统的部署。

十二。张量积星5.9k?Fork 1.3k

这是一个面向科学家的深度和密集型学习图书馆。张量层自下而上可分为三个模块:神经网络模块、工作流模块和应用模块。

与Keras和Pytorch相比,TensorLayer改进了神经网络模块的抽象设计,减少了使用现有层和开发新层的工作量。

四。自然语言处理工具

xiii,BERT star 21.3k?Fork 5.8k

BERT是一个基于双向转换器的大规模预训练语言模型,用于预训练大量未标记的文本数据,以学习一种可用于微调特定机器学习任务的语言表示。

BERT被称为NLP的里程碑。目前,BERT也是NLP深入学习的重要组成部分。许多后续的自然语言处理模型在此基础上得到优化和改进。

xiv。变形金刚之星21.7k?Fork 4.8k

Transformers是一种用于神经机器翻译的神经网络。它主要涉及将输入序列转换成输出序列的任务,包括语音识别和文本到语音的转换。

这种任务需要“记忆”。下一个句子必须与前一个句子的上下文相关(这很关键),以免丢失重要信息。通过关注所使用的单词,RNN或美国有线电视新闻网在句子太长时无法追踪上下文和内容的问题可以得到解决。

xv,allenlpstar8k?Fork 1.7k

是一个基于PyTorch的NLP研究库,使用深入学习来理解自然语言。通过处理低级细节和提供高质量的参考,它可以方便快捷地帮助研究者建立新的语言理解模型。

AllenNLP使设计和评估一个新的深度学习模型变得很容易,它几乎适用于任何自然语言处理问题。通过使用一些基本组件,您可以轻松地在云中或您自己的笔记本上运行模型。

16,flair star 8.1k?Fork 1k

是一个易于使用的Python自然语言处理库,它允许将当前的最佳自然语言处理模型应用于文本,例如命名实体识别(NER)、词性、词义消歧和分类。

Flair基于Pytorch的自然语言处理框架。它的界面相对简单,允许用户使用和组合不同的单词嵌入和文档嵌入,包括Flair嵌入、BERT嵌入和ELMo嵌入。

xvii,spacestar 15.7k?Fork 2.8k

这是一个具有工业实力的Python自然语言处理工具包。

它已经成为Python中使用最广泛的工业自然语言库之一。它提供了目前最好的准确性和效率,并且得到了一个活跃的开源社区的支持。

xviii,fastText star 20.5k?Fork 3.9k

FastText是脸书人工智能研究实验室(FAIR)的一个开源文本处理库。它是一个专门用于文本分类和外部文本表示的库,用于高效的文本分类和表示学习。

fastText的核心是使用单词包,而不考虑文本的顺序。然而,它不是线性的,而是使用分级分类器将时间复杂度降低到对数级,并且在具有更高分类数的大数据集上更有效。

GitHub地址:

v .语音识别工具xix,Kaldi star 8.2k?Fork 3.7k

Kaldi是目前广泛使用的开发语音识别应用的框架。

这个语音识别工具包是用C语言编写的。研究人员和开发人员可以使用Kaldi来训练语音识别神经网络模型,但是如果需要将训练好的模型部署到移动设备上,通常需要大量的移植和开发工作。

20,deep speedstar 13k?Fork 2.4k

DeepSpeech是一个开源的语音到文本引擎,它使用基于百度DeepSpeech研究论文的机器学习技术培训模型。其中,该项目使用谷歌的张量流来简化实施过程。

21,wav2letter star 4.8k?这是第一个由脸书人工智能研究所发布的全容量自动语音识别工具包。这是一个简单有效的端到端自动语音识别系统。

wav2letter的核心设计基于三个关键原则,包括:在包含数千小时的语音数据集上实现高效的模型训练;这种简单且可扩展的模型可以访问语音识别系统中新的网络结构、丢失函数和其他核心操作。并使语音识别模型从研究到生产部署的过渡更加平稳。

VI .计算机视觉工具

22,YOLO之星16.2k?Fork 10.4k

YOLO是深度学习领域中解决图像检测问题的最先进的实时系统。在检测过程中,YOLO首先将图像分割成指定的包围盒,然后对所有包围盒并行运行识别算法,以确定对象所属的类别。确定类别后,YOLO智能地合并这些边界框,以形成对象周围的最佳边界框。

这些步骤都是并行执行的,因此YOLO可以实时运行,每秒处理40张图像。根据官方网站,在帕斯卡泰坦X上,它以30帧/秒的速度处理图像,而COCO测试开发中的地图是57.9%。

xxiii,OpenCV star 41.9k?Fork 32.4k

OpenCV是英特尔的开源跨平台计算机视觉库(),被称为简历开发者和研究人员的必备工具包。

这是一个包含从图像预处理到预训练模型调用的大量视觉API的库,可以处理主流的视觉任务,如图像识别、目标检测、图像分割和行人再识别。最显着的特点是它提供了一套完整的过程工具,因此开发人员可以用API构建可视化任务,而不需要理解每个模型的原理。它有C、Python和Java接口,支持Windows、Linux、苹果操作系统、iOS和安卓系统。

24,探测器2星7.7k?福克1.4K

N2探测器是PyTorch 1.3的主要新工具。它源于马斯克cnn基准测试,是对检测器先前版本的完全重写。

Detectron2通过新的模块化设计变得更加灵活和易于扩展。它可以在单个或多个GPU服务器上提供更快的培训速度,包括更大的灵活性和可扩展性,以及增强的可维护性和可扩展性,以支持生产中的用例。

xxv,OpenPose star 15.9k?Fork 4.7k

OpenPose人体姿态识别项目是由CMU卡耐基梅隆大学基于卷积神经网络和监督学习,以caffe为框架开发的开源库。

可以实现人体运动、面部表情、手指运动等的姿态估计。它适用于单人和多人,并具有出色的鲁棒性。这是世界上第一个基于深度学习的实时多人二维姿态估计应用。基于它实现了许多人体姿态估计的例子,例如运动获取、3D拟合、绘图辅助等。

26,facenet star 10k?Fork 4.1k

FaceNet使用深度卷积神经网络(CNN)来学习将图像映射到欧洲空间,也称为通用人脸识别系统。

该系统可以从人脸中提取高质量的特征,称为人脸嵌入,可以用来训练人脸识别系统来验证人脸。在LFW数据集上的测试准确率为99.63%,在YouTube人脸数据库数据集上的测试准确率为95.12%。

七。分布式培训工具

27,Spark MLlib star 25.1k?Fork 21.1k

Spark是一个开源集群计算框架,也是大数据领域最流行的开源软件之一()。

由于Spark使用内存计算技术,其内存计算速度比Hadoop MapReduce快100倍;这也使得sparkmlib分布式计算框架非常高效和快速。它可以实现大多数的机器学习算法,如聚类、分类、回归等,并且允许将数据加载到聚类内存中并进行多次查询,因此非常适合机器学习算法。

Mahout框架早已绑定到Hadoop,但是它的许多算法也可以在Hadoop之外运行。它允许多个算法在分布式星火集群上运行,并支持中央处理器和图形处理器操作。

29,Horovod star 8.5k?Fork 1.3k

这是一个TensorFlow培训框架,用于跨多台机器的分布式深度学习,由Uber开源。它可以使分布式深度学习快速、易用。

据报道,Horovod允许开发人员只用几行代码就能完成任务。这不仅加快了初始修改过程,还进一步简化了调试。考虑到深度学习计划的高度迭代性质,这也可以节省大量时间。此外,它还结合了高性能和修补低级模型细节的能力,例如,同时使用高级api和使用NVIDIA的CUDA工具包来实现自己的定制操作符。

30,Dask star 6.2k?分叉994

当开发人员需要并行处理多核时,Dask可用于将计算扩展到多核甚至多台机器。

Dask提供了NumPy数组、熊猫数据框和常规列表的抽象,并且可以在不能放入主内存的数据集上并行运行。对于大数据集,高级数据集Dask是NumPy和熊猫的替代。

31,雷星10.3公里?Fork 1.5k

Ray是一个高性能分布式执行框架,它使用不同于传统分布式计算系统的体系结构和抽象方法来进行分布式计算,并用于快速简单地构建和运行分布式应用程序。

Ray是根据典型的主从模式设计的。其中,主机负责全局协调和状态维护,从机执行分布式计算任务。然而,与传统的分布式计算系统不同,Ray采用了混合任务调度的思想,具有更好的性能。

32,TPOT之星6.7k?叉子1.2k

TPOT 是一个 Python 编写的软件包,利用遗传算法行特征选择和算法模型选择,仅需几行代码,就能生成完整的机器学习代码。

在机器学习模型开发图中,TPOT 所完成的即通过利用遗传算法,分析数千种可能的组合,为模型、参数找到最佳的组合,从而自动化机器学习中的模型选择及调参部分。

三十三、AutoKeras star 6.6k ?fork 1.1k

它使用了高效神经架构搜索(ENAS,只需使用 pip install autokeras 就能快速轻松地安装软件包,然后就能用自己的数据集来执行自己的架构搜索构建思路。

相比谷歌 AutoML,两者构建思路类似,但不同的是,AutoKeras 所有代码都已经开源,可供开发者无偿使用。

三十四、Featuretools star 4.6k ?fork 602

这是一个用于自动化特性工程的开源 python 框架(

它可以帮助开发者从一组相关数据表中自动构造特征。开发者只需要知道数据表的基本结构和它们之间的关系,然后在实体集(一种数据结构)中指明。然后在有了实体集之后,使用一个名为深度特征合成(DFS)的方法,在一个函数调用中构建出数千个特征。

GitHub 地址:

三十五、NNI star 5.3k ?fork 683

NNI 是由微软发布的一个用于神经网络超参数调整的开源 AutoML 工具包,也是目前较为热门的 AutoML 开源项目之一。

最新版本的 NNI 对机器学习生命周期的各个环节做了更加全面的支持,包括:特征工程、神经网络架构搜索(NAS)、超参调优和模型压缩,开发者都能使用自动机器学习算法来完成,即使是开发小白也能轻松上手。

AdaNet 是由谷歌开源的一个轻量级的基于 TensorFlow 框架(

AdaNet 易于使用,并能创建高质量的模型,为 ML 实践者节省了用于选择最佳神经网络架构的时间,实现了一种将学习神经架构作为子网络集合的自适应算法。

IX . IDEs 系统

三十七、Jupyter star 9.3k ?fork 2.2k

Jupyter 是一种 Web 应用,涵盖了跨数十种编程语言的交互式计算。

它能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中,非常方便研究和教学。在数据挖掘平台 Kaggle 上,使用 Python 的数据开发者大多数选择了 jupyter 来实现分析和建模的过程。

三十八、Spyder star 5.1k ?fork 1k

Spyder 是一个 用于科学计算的使用 Python 编程语言的集成开发环境(IDE)。

它结合了综合开发工具的高级编辑、分析、调试功能以及数据探索、交互式执行、深度检查和科学包的可视化功能,对于初学者也非常友好。

三十九、Zeppelin star 4.6k ?fork 2.2k

Zeppelin 是一款基于 Web 的交互式数据分析平台。它基于网络的笔记本,默认使用 Spark 集群作为分析引擎,提供数据可视化的框架,支持数据驱动的交互式数据分析。

通过配置,它也支持包括 SQL、Python、R 等多种数据分析语言,提供数据库查询、动态图表展示、地图等数据可视化能力,并能够以 Notebook 的形式保存和分发代码及分析结果。

X . 平台四十、H2O star 4.6k ?fork 1.7k

H2O 是 H2O.ai 公司的完全开源的分布式内存机器学习平台。H2O 同时支持 R 和 Python,支持最广泛使用的统计和机器学习算法,包括梯度提升(Gradient Boosting)机器、广义线性模型、深度学习模型等。

H2O 包括一个自动机器学习模块,使用自己的算法来构建管道。它对特征工程方法和模型超参数采用了穷举搜索,优化了管道。H2O 自动化了一些最复杂的数据科学和机器学习工作,例如特征工程、模型验证、模型调整、模型选择 和 模型部署。除此之外,它还提供了自动可视化以及机器学习的解释能力(MLI)。

GitHub 地址:

四十一、MLflow star 5.9k ?fork 1.2k

MLflow 是机器学习生命周期的开源平台,开放接口,可与任何机器学习库、算法、部署工具或编程语言一起使用,基于 REST API 和简单的数据格式而构建。是一个开源项目,允许用户和机器学习库开发人员可以对其进行扩展。

MLflow 现 alpha 版,提供跟踪、项目和模型三大组件。MLflow 的跟踪组件支持记录和查询实验数据,如评估度量指标和参数。MLflow 的项目组件提供了可重复运行的简单包装格式。最后,MLflow 的模型组件提供了用于管理和部署模型的工具。

四十二、Kubeflow star 8.3k ?fork 1.3k

Kubeflow 项目旨在使 Kubernetes 上的机器学习变的轻松、便捷、可扩展,其目标不是重建其他服务,而是提供一种简便的方式找到最好的 OSS 解决方案。对分布式训练任务支持。

用于创建和管理交互式 Jupyter notebook 的 JupyterHub,可配置为使用 CPU 或 GPU,并通过单一设置调整至单个集群大小的 TensorFlow 训练控制器(Tensorflow Training Controller),用于 TF 服务容器(TF Serving container)

XI . 评分推理系统

四十三、ONNX star 7.8k ?fork 1.3k

ONNX 是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如 Pytorch, MXNet)可以采用相同格式存储模型数据并交互。ONNX 的规范及代码主要由微软,亚马逊,Facebook 和小发猫等公司共同开发,以开放源代码的方式托管在 Github 上。

目前官方支持加载 ONNX 模型并进行推理的深度学习框架有:Caffe2, PyTorch, MXNet,ML.NET,TensorRT 和 Microsoft CNTK,并且 TensorFlow 也非官方的支持 ONNX。

四十四、Seldon star 1.4k ?fork 296

开源机器学习部署平台 Seldon Core,让机器学习模型可以部署于 Kubernetes 上。Seldon Core 的目标,要让研究人员可以用任何工具包、程序语言建立机器学习模型。

现阶段该工具支持模型包含以 Python 为基础的 TensorFlow、Sklearn,还有 Spark、H2O、R 等知名模型。此外,Seldon Core 也让机器学习模型可支援 REST、gRPC,让使用者可以更简单地整合相关企业应用。

-