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

包含:经典机器学习、深度学习、强化学习、计算机视觉、分布式训练、自动建模、平台

1 . 适用于经典机器学习的工具

一、SciKit-learn  star 39.2k  fork 19.2k

scikit-learn 是一种强大的基于 Python 语言的机器学习算法库(https://scikit-learn.org/stable/)。其中,包含了算法预处理,模型参数择优,回归与分类等算法等,

GitHub 地址:https://github.com/scikit-learn/scikit-learn 

二、XGBoost star 18.3k  fork 7.3k

GitHub 地址:https://github.com/dmlc/xgboost 

三、Accord.NET star 3.7k  fork 1.7k

Accord.NET Framework 是一个.NET 机器学习框架,结合了完全用 C#编写的音频和图像处理库(http://accord-framework.net/)。

它可用于构建生产级计算机视觉、计算机试听、信号处理和统计应用程序甚至用于商业用途的完整框架,并为.NET 的应用程序提供了统计分析、机器学习、图像处理、计算机视觉相关的算法。

GitHub 地址:https://github.com/accord-net/framework 

2 . 适用于深度学习的工具

四、TensorFlow star 141k  fork 79.8k

TensorFlow 是用于机器学习的端到端开源平台(https://tensorflow.org),也是 2019 年度 GitHub 上最受欢迎的项目。

它具有工具、库、社区资源全面且灵活的生态系统,提供稳定的 Python 和 C ++ API,以及其他语言的非保证向后兼容 API;能够帮助开发者们在 ML 领域的研究与发展,并使开发人员轻松构建和部署 ML 支持的应用程序。

GitHub 地址:https://github.com/tensorflow/tensorflow 

五、PyTorch star 35.8k  fork 9k

作为 TensorFlow 强有力竞争对手的 PyTorch,也是目前较为主流的深度学习工具之一。

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

此前,OpenAI 官方宣布了「全面转向 PyTorch」的消息,计划将自家平台的所有框架统一为 PyTorch,也进一步体现了 PyTorch 在深度学习方面的潜力。

GitHub 地址:https://github.com/pytorch/pytorch 

六、MXNET star 18.4k  fork 6.5k

MXNet 是一个功能齐全,可编程和可扩展的深入学习框架,支持最先进的深入学习模式(https://mxnet.apache.org/)。

MXNet 提供了混合编程模型(命令式和声明式)和大量编程语言的代码(包括 Python、C++、R、Scala、Julia、Matlab 和 JavaScript)的能力,是一个易安装易上手的开源深度学习工具,它提供了一个 python 接口 gluon,能够让开发者迅速搭建起神经网络,并进行高效训练。

GitHub 地址:https://github.com/apache/incubator-mxnet 

七、Sonnet star 8.1k  fork 1.2k

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

Sonnet 主要用于让 DeepMind 开发的其它模型更容易共享,Sonnet 可以在内部的其它子模块中编写模块,或者在构建新模块时传递其它模型作为参数;同时,Sonnet 提供实用程序来处理这些任意层次结构,以便于使用不同的 RNN 进行实验,整个过程无需繁琐的代码改写。

GitHub 地址:https://github.com/deepmind/sonnet 

八、DL4J star 11.5k  fork 4.8k

DL4J 是采用 java 和 jvm 编写的开源深度学习库,支持各种深度学习模型。DL4J 最重要的特点是支持分布式,可以在 Spark 和 Hadoop 上运行,它支持分布式 CPU 和 GPU 运行,并可以利用 Spark 在多台服务器多个 GPU 上开展分布式的深度学习模型训练,让模型运行更快。

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

GitHub 地址:https://github.com/eclipse/deeplearning4j 

3 . 适用于强化学习的工具

九、Gym    star 19.6k  fork 5.5k

Gym 是一个用于开发和比较强化学习算法的工具(https://gym.openai.com/)。

它无需对 agent 的先验知识,并且采用 python 作为主要开发语言,因此可以简单的和 TensorFlow 等深度学习库进行开发集成,同时直观的将学习结果用画面直观的展示出来。Gym 库中包含许多可以用于制定强化学习算法的测试问题(即环境),这些环境有共享接口,允许编写通用的算法。

GitHub 地址:https://github.com/openai/gym 

十、Dopamine     star 8.7k  fork 1.1k

一款基于 Tensorflow 的框架,旨在为新手和经验丰富的强化学习研究人员提供兼具灵活性、稳定性和可重复性的新工具。

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

GitHub 地址:https://github.com/google/dopamine 

十一、ReAgent    star 2.4k  fork 312

Facebook 推出的一个构建决策推理系统的模块化端到端平台,用于推理系统(强化学习、上下文管理等), 可以显著简化推理模型构建过程。

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

GitHub 地址:https://github.com/facebookresearch/ReAgent 

十二、Tensorlayer   star 5.9k  fork 1.3k

这是一个面向科学家的深度学习和强化学习库。TensorLayer 由底层到上层可以分为三大模块:神经网络模块、工作流模块、应用模块。

与 Keras 和 Pytorch 相比,TensorLayer 提高了神经网络模块的抽象化设计,同时实现了降低使用现有层和开发新层的工作量。

GitHub 地址:https://github.com/tensorlayer/tensorlayer 

4 . 适用于计算机视觉的工具

十三、YOLO  star 16.2k  fork 10.4k

YOLO 是当前深度学习领域解决图像检测问题最先进的实时系统。在检测过程中,YOLO 首先将图像划分为规定的边界框,然后对所有边界框并行运行识别算法,来确定物体所属的类别。确定类别之后,YOLO 再智能地合并这些边界框,在物体周围形成最优边界框。

这些步骤全部并行进行,因此 YOLO 能够实现实时运行,并且每秒处理多达 40 张图像。据官网显示,在 Pascal Titan X 上,它以 30 FPS 的速度处理图像,并且在 COCO 测试开发中的 mAP 为 57.9%。

GitHub 地址:https://github.com/allanzelener/YAD2K 

十四、OpenCV    star 41.9k  fork 32.4k

OpenCV 是英特尔开源的跨平台计算机视觉库(https://opencv.org),被称为 CV 领域开发者与研究者的必备工具包。

这是一套包含从图像预处理到预训练模型调用等大量视觉 API 的库,并可以处理图像识别、目标检测、图像分割和行人再识别等主流视觉任务。其最显著的特点是它提供了整套流程的工具,因此开发者无需了解各个模型的原理就能用 API 构建视觉任务。它具备 C++、Python 和 Java 接口,支持 Windows、Linux、Mac OS、iOS 和 Android 系统。

GitHub 地址:https://github.com/opencv/opencv 

十五、Detectron2   star 7.7k  fork 1.4k

Detectron2 则是 PyTorch 1.3 中一重大新工具,它源于 maskrcnn 基准测试,也是对先前版本 detectron 的一次彻底重写。

Detectron2 通过全新的模块化设计,变得更灵活且易于扩展,它能够在单个或多个 GPU 服务器上提供更快速的训练速度,包含了更大的灵活性与扩展性,并增强了可维护性和可伸缩性,以支持在生产中的用例。

GitHub 地址:https://github.com/facebookresearch/detectron2 

十六、OpenPose   star 15.9k  fork 4.7k

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

它可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用,很多人体姿态估计实例都是基于它实现,如动作采集、3D 试衣、绘画辅助等。

GitHub 地址:https://github.com/CMU-Perceptual-Computing-Lab/openpose

十七、facenet   star 10k  fork 4.1k

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

该系统可从人脸中提取高质量的特征,称为人脸嵌入(face embeddings),可用于训练人脸识别系统,从而实现对人脸的验证。它在 LFW 数据集上测试的准确率达到了 99.63%,在 YouTube Faces DB 数据集上准确率为 95.12%。

GitHub 地址:https://github.com/davidsandberg/facenet 

5 . 适用于分布式训练的工具

十八、Spark MLlib   star 25.1k  fork 21.1k

Spark 是一个开源集群运算框架,也是现在大数据领域热门开源软件之一(https://spark.apache.org/mllib/)。

由于 Spark 使用了内存内运算技术,它在内存上的运算速度比 Hadoop MapReduce 的运算速度快上 100 倍;这也使得 Spark MLlib 分布式计算框架运行非常高效、快速。它可以实现大部分机器学习,如:聚类、分类、回归等算法,并允许将数据加载至集群内存,多次对其进行查询,所以非常适合用于机器学习算法。

GitHub 地址:https://github.com/apache/spark 

十九、Mahout  star 1.8k  fork 930

Mahout 是一个分布式线性代数框架,用于快速创建可扩展的高性能机器学习应用程序(http://mahout.apache.org/  )。

Mahout 框架长期以来一直与 Hadoop 绑定,但它的许多算法也可以在 Hadoop 之外运行。它允许多种算法可以跨越分布式 Spark 群集上运行,并且支持 CPU 和 GPU 运行。

GitHub 地址:https://github.com/apache/mahout 

二十、Horovod   star 8.5k  fork 1.3k

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

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

GitHub 地址:https://github.com/horovod/horovod 

二十一、Dask   star 6.2k  fork 994

当开发者需要并行化到多核时,可以用 Dask 来将计算扩展到多个内核甚至多个机器。

Dask 提供了 NumPy Arrays,Pandas Dataframes 和常规列表的抽象,能够在无法放入主内存的数据集上并行运行。对大型数据集来说,Dask 的高级集合是 NumPy 和 Pandas 的替代方案。

GitHub 地址:https://github.com/dask/dask 

二十二、Ray   star 10.3k  fork 1.5k

Ray 是一个高性能分布式执行框架,它使用了和传统分布式计算系统不一样的架构和对分布式计算的抽象方式,用于快速而简单的构建和运行分布式应用程序。

Ray 按照典型的 Master-Slave 进行设计。其中,Master 负责全局协调和状态维护,Slave 执行分布式计算任务。不过和传统的分布式计算系统不同的是,Ray 使用了混合任务调度的思路,性能更强。

GitHub 地址:https://github.com/ray-project/ray 

6 . 适用于自动建模的工具

二十三、TPOT  star 6.7k  fork 1.2k

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

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

GitHub 地址:https://github.com/EpistasisLab/tpot 

二十四、AutoKeras   star 6.6k  fork 1.1k

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

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

GitHub 地址:https://github.com/keras-team/autokeras 

二十五、Featuretools  star 4.6k  fork 602

这是一个用于自动化特性工程的开源 python 框架(https://www.featuretools.com/)。

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

GitHub 地址:https://github.com/FeatureLabs/featuretools 

二十六、NNI   star 5.3k  fork 683

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

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

GitHub 地址:https://github.com/microsoft/nni 

二十七、AdaNet    star 3k  fork 443

AdaNet 是由谷歌开源的一个轻量级的基于 TensorFlow 框架(https://adanet.readthedocs.io/en/v0.8.0/)。

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

GitHub 地址:https://github.com/tensorflow/adanet 

7 . 平台

二十八、H2O  star 4.6k  fork 1.7k

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

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

GitHub 地址:https://github.com/h2oai/h2o-3

二十九、MLflow  star 5.9k  fork 1.2k

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

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

GitHub 地址:https://github.com/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)

GitHub 地址:https://github.com/kubeflow/kubeflow 

原文链接:https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247493412&idx=2&sn=3b1848740310233ebb8b7f863a5d2f44&chksm=ec1c0adddb6b83cb0b05b74c82b08f2655702dc8cb730294dc1f449a277d8748895947453ea9&mpshare=1&scene=23&srcid=021249wmjjzjfArXhwPUladX&sharer_sharetime=1581513593728&sharer_shareid=4703eb74e094277222397f74f680b446&client=tim&ADUIN=3145466450&ADSESSION=1581471060&ADTAG=CLIENT.QQ.5603_.0&ADPUBNO=26933#rd

原文地址:https://www.cnblogs.com/xiximayou/p/12301025.html