全面的数据科学C/C++机器学习库整理,再也不用百度搜了

作者: 为AI呐喊 2020-10-23 12:01:03

引言和动机--为什么是C++?

C++是动态负载平衡、自适应缓存、开发大型数据框架和库的理想选择。谷歌的MapReduce,MunGDB,下面列出的大多数深度学习库都是用C++实现的。以超低延迟和极高吞吐量著称的Scylla,使用C++作为Apache Casand and Amazon DynDoDB的替代者进行编码。

C++作为编程语言(包括内存管理、性能特性和系统编程)的一些独特优势,绝对是开发快速可扩展的数据科学和大数据库最有效的工具之一。

此外,Julia(由麻省理工学院开发的一种编译的交互式语言)正在成为Python在科学计算和数据处理领域的潜在竞争对手。其快速处理速度、并行性、静态以及动态键入和用于插入库的 C++ 绑定功能,简化了开发人员/数据科学家集成和使用 C++ 作为数据科学和大数据库的工作。

1. 来自谷歌AI的TensorFlow

由 Google 开发的热门深度学习库,它拥有自己的工具、库和社区资源生态系统,使研究人员和开发人员能够轻松构建和部署 ML 支持的应用程序。

官方文档:https://www.tensorflow.org/lite/microcontrollers/library

GitHub:https://github.com/tensorflow/serving

2. Berkeley(伯克利)的Caffe

伯克利视觉和学习中心开发了用于快速功能嵌入或 Caffe C++卷积架构的深度学习框架。

GitHub:https://github.com/intel/caffe

3. 微软认知工具包 (CNTK)

微软认知工具包是一个统一的深度学习工具包,它通过定向图帮助将神经网络翻译为一系列计算步骤。

GitHub:https://github.com/microsoft/CNTK

4. mlpack 库

mlpack是一个快速、灵活的机器学习库,用 C++编写,提供具有 Python 绑定、Julia 绑定和 C++ 类的最先进的机器学习算法。

GitHub:https://github.com/mlpack/mlpack

5. DyNet

动态神经网络工具包(支持动态计算图形)或 DyNet 是一种用 C++ (在 Python 中具有绑定)编写的高性能神经网络库,可以在 CPU 或 GPU 上高效运行。它支持自然语言处理、图形结构、强化学习等。

GitHub:https://github.com/clab/dynet

6. Shogun

Shogun 是一个开源机器学习库,它提供广泛的高效和统一的机器学习方法,如多种数据表示、算法类和通用工具的组合,用于快速原型设计数据管道。

GitHub:https://github.com/shogun-toolbox/shogun

7. FANN

快速人工神经网络(FANN)是C语言中的多层人工神经网络,支持完全连接和稀疏连接的网络。它支持固定点和浮点中的跨平台执行。此外,它还支持基于拓扑的不断发展训练和基于反传播的DL模型培训。

GitHub:https://github.com/libfann/fann

8. OpenNN

开放神经网络 (OpenNN) 是一个开源 (C/C++) 神经网络高性能库,用于高级分析,支持分类、回归、预测等。

GitHub:https://github.com/Artelnics/opennn

9. SHARK库

Shark 是一个快速、模块化、通用的开源机器学习库 (C/C++),用于应用和研究,支持线性和非线性优化、基于内核的学习算法、神经网络以及各种其他机器学习技术。

GitHub:https://github.com/Shark-ML/Shark

10. Armadillo

Armadillo 是一个线性代数 (C/C++) 库,其功能类似于 Matlab。该库以快速将研究代码转换为生产环境、模式识别、计算机视觉、信号处理、生物信息学、统计学、计量经济学等而著名。

最全数据科学C/C++机器学习库整理,再也不用百度搜了

11. Faisis

faiss:此库(C/C++)用于高效相似性搜索和密集向量聚类。它包含以任何大小的向量集进行搜索的算法,这些向量可能不适合 RAM 中的矢量集。它还支持通过 CUDA 提供的可选 GPU 和可选 Python 接口。

GitHub:https://github.com/facebookresearch/faiss

12.随机森林

  • https://github.com/zhufangzhou/RandomForest
  • https://github.com/bjoern-andres/random-forest

13. Boosting

XGBoost – 并行优化的通用梯度提升库。

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

ThunderGBM – 用于 GPU 上的 GBDTs 和随机森林的快速库。

GitHub:https://github.com/Xtra-Computing/thundergbm

LightGBM – 基于决策树算法的快速、分布式、高性能梯度提升(GBDT、GBRT、GBM 或 MART)框架,用于排名、分类和许多其他机器学习任务。

GitHub:https://github.com/Microsoft/LightGBM

CatBoost – 决策树库上的通用梯度提升,具有开箱即用的分类功能支持。它易于安装,包含快速推理实现,并支持 CPU 和 GPU(甚至多 GPU)计算。

GitHub:https://github.com/catboost/catboost

14. 推荐系统

Recommender(推荐) – 一个 C 语言库,使用协作过滤(CF)进行产品推荐/建议。

GitHub:https://github.com/GHamrouni/Recommender

混合推荐系统 – 基于scikit学习算法的混合推荐系统。

GitHub:https://github.com/SeniorSA/hybrid-rs-trainner

15. 自然语言处理

BLLIP 解析器 -- BLLIP 自然语言解析器(也称为查尼亚克 -约翰逊解析器)。

GitHub:https://github.com/BLLIP/bllip-parser

colibri-core -- C++库、命令行工具和 Python 绑定,用于快速、高效记忆地提取和处理基本语言结构(如 n-gram 和 skiagram)。

GitHub:https://github.com/proycon/colibri-core

CRF++ -- 用于分段/标记顺序数据的条件随机字段 (CLF) 的开源实现和其他自然语言处理任务。[已弃用]

GitHub:https://github.com/taku910/crfpp

CRFsuite -- CRFifsuite 是用于标记顺序数据的条件随机字段 (CLF) 的实现。[已弃用]

GitHub:https://github.com/chokkan/crfsuite

CRF 模型 -- 基于不同深度学习的 CRF模型。frog --为荷兰语开发的基于内存的NLP套件:PoS 标记器、lemmatizer、依赖分析器、NER、浅层解析器、形态分析仪。

GitHub:https://github.com/topics/crf-model

MeTA -- ModErn 文本分析是一个 C++ 数据科学工具包,有助于挖掘大文本数据,包括文本标记化,包括解析树、主题模型、分类算法、图形算法、语言模型、多线程算法等深层语义功能。

官方文档:https://meta-toolkit.org/

MIT信息提取工具包 -- C、C++ 和 Python 工具,用于命名实体识别和关系提取

GitHub:https://github.com/mit-nlp/MITIE

ucto -- 用于各种语言的 Unicode 感知正则表达式标记器、工具和C++库,支持 FoLiA 格式。

GitHub:https://github.com/LanguageMachines/ucto

16. 数据流挖掘

StreamDM: 适用于挖掘支持以下算法的大数据流。

GitHub:https://github.com/huawei-noah/streamDM-Cpp

SGD 学习者和感知器:

  • 朴素贝叶斯
  • CluStream
  • Hoeffding决策树
  • Bagging
  • 流KM ++

数据产生器:

  • HyperplaneGenerator
  • RandomTreeGenerator
  • RandomRBFGenerator
  • RandomRBFEventsGenerator

17. 数据结构/图形/动态编程算法

GitHub:https://github.com/TheAlgorithms/C-Plus-Plus

18. 通用机器学习

Darknet -- Darknet是一个开源神经网络框架,用 C 和 CUDA 编写,支持 CPU 和 GPU 计算。

GitHub:https://github.com/pjreddie/darknet

cONNXr -- ONNX 运行时以纯 C (99) 编写,零依赖关系集中在小型嵌入式设备上。对机器学习模型进行推理,无论您使用哪个框架进行训练。易于安装和编译无处不在,即使在非常旧的设备。

GitHub:https://github.com/alrevuelta/cONNXr

BanditLib -- 一个简单的多臂Bandit库。[已弃用]

GitHub:https://github.com/jkomiyama/banditlib

CUDA -- 这是一个快速 C++/CUDA 实现卷积深度学习

官方文档:https://code.google.com/p/cuda-convnet/

DeepDetect -- 一个用 C++ 11编写的机器学习API和服务器。它使最先进的机器学习易于使用并集成到现有应用程序中。

GitHub:https://github.com/jolibrain/deepdetect

分布式机器学习工具包 (DMTK) -- 微软的分布式机器学习(参数服务器)框架。在多台机器上启用大型数据集的训练模型。与它捆绑的当前工具包括:LightLDA 和分布式(多感)字嵌入。

官网:https://www.dmtk.io/(已停用)

DLib -- 一套 ML 工具,设计为易于在其他应用中安装。

官网:https://dlib.net/ml.html

DSSTNE -- 由亚马逊创建的软件库,用于使用 GPU 训练和部署深度神经网络,该软件库强调速度和扩展性,而不是实验灵活性。

GitHub:https://github.com/amazon-archives/amazon-dsstne

Fido -- 用于嵌入式电子和机器人技术的高度模块化 C++ 机器学习库。

GitHub:https://github.com/FidoProject/Fido

igraph -- 通用图形库。

官方文档:https://igraph.org/

英特尔DAAL -- 由英特尔开发并针对英特尔架构进行优化的高性能软件库。库为数据分析的所有阶段提供了算法构建块,并允许以批处理,联机和分布式模式处理数据。

GitHub:https://github.com/oneapi-src/oneDAL

libfm -- 一种通用方法,可以通过特征工程模拟大多数分解模型。

GitHub:https://github.com/srendle/libfm

MLDB -- 机器学习数据库是为机器学习而设计的数据库。通过RESTful API发送命令以存储数据,使用SQL探索数据,然后训练机器学习模型,并将其公开为API。

官方文档:https://mldb.ai/

MXNet -- 具有动态,可感知突变的Dataflow Dep Scheduler的轻量,便携式,灵活的分布式/移动深度学习;适用于Python,R,Julia,Go,Javascript等。

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

proNet-core -- 通用网络嵌入框架:成对表示优化Network Edit。

GitHub:https://github.com/cnclabs/proNet-core

PyCUDA -- CUDA的Python接口

官方文档:https://mathema.tician.de/software/pycuda/

ROOT -- 模块化的科学软件框架。它提供了处理大数据处理,统计分析,可视化和存储所需的所有功能。

官网:https://root.cern.ch/

sofia-ml -- 快速增量算法套件。

官网:https://code.google.com/archive/p/sofia-ml

Stan -- 一种概率编程语言,利用汉密尔顿蒙特卡洛采样实现完整的贝叶斯统计推断。

官方文档:https://mc-stan.org/

Timbl -- 一种软件包/ C ++库,实现了几种基于内存的学习算法,其中IB1-IG是k最近邻分类的实现,而IGTree是IB1-IG的决策树近似,常用于NLP。

GitHub:https://languagemachines.github.io/timbl/

Vowpal Wabbit(VW) -- 一个快速的核心学习系统。

GitHub:https://github.com/VowpalWabbit/vowpal_wabbit

Warp-CTC -- 在CPU和GPU上快速并行地实现连接主义时间分类(CTC)。

GitHub:https://github.com/baidu-research/warp-ctc

ThunderSVM -- 在GPU和CPU上的快速SVM库。

GitHub:https://github.com/Xtra-Computing/thundersvm

LKYDeepNN -- 仅标头的 C++11 神经网络库。低依赖性,本地繁体中文文档。

GitHub:https://github.com/mosdeo/LKYDeepNN

xLearn -- 高性能,易于使用且可扩展的机器学习套件,可用于解决大规模的机器学习问题。 xLearn对于解决大规模稀疏数据上的机器学习问题特别有用,这在Internet服务(例如在线广告和推荐系统)中非常常见。

GitHub:https://github.com/aksnzhy/xlearn

Featuretools –一个用于自动特征工程的库。它擅长使用可重复使用的特征工程“基元”将事务和关系数据集转换为用于机器学习的特征矩阵。

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

skynet -- 用于学习神经网络的库,具有C接口,在JSON中设置了网。用C ++编写,并使用Python,C ++和C#进行绑定。

GitHub:https://github.com/Tyill/skynet

Feast -- 用于管理,发现和访问机器学习功能的功能存储。 Feast可为模型训练和模型服务提供一致的特征数据视图。

GitHub:https://github.com/feast-dev/feast

Hopsworks -- 具有AI的数据密集型平台,具有业界首个开源功能存储。 Hopsworks Feature Store既提供了用于基于Apache Hive进行培训和批处理的功能库,又为在线应用程序提供了基于MySQL Cluster的功能服务数据库。

GitHub:https://github.com/logicalclocks/hopsworks

Polyaxon -- 一个可重现和可扩展的机器学习和深度学习的平台。

GitHub:https://github.com/polyaxon/polyaxon

sara -- C ++计算机视觉库,具有易于理解且高效的计算机视觉算法实现。 [Mozilla Public License版本2.0]

GitHub:https://github.com/DO-CV/sara

ANNetGPGPU -- 基于GPU(CUDA)的人工神经网络库。 [LGPL]

GitHub:https://github.com/ANNetGPGPU/ANNetGPGPU

btsk -- 游戏行为树入门套件。 [zlib]

GitHub:https://github.com/aigamedev/btsk

Evolving Objects -- 基于模板的ANSI-C++演化计算库,可帮助您快速地编写自己的随机优化算法。 [LGPL]

官网:https://eodev.sourceforge.net/

frugally-deep -- 只使用C++中的 KARAS 模型的头文件库。[MIT]

GitHub:https://github.com/Dobiasd/frugally-deep

Genann -- C中的简单神经网络库。[zlib]

GitHub:https://github.com/codeplea/genann

PyTorch -- 具有强大GPU加速功能的Python中的张量和动态神经网络。

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

Recast / Detour --(3D)导航网格生成器和探路器,主要用于游戏。 [zlib]

GitHub:https://github.com/recastnavigation/recastnavigation

tiny-dnn -- 在C++11中仅有标头,无依赖项的深度学习框架。 [BSD]

GitHub:https://github.com/tiny-dnn/tiny-dnn

Veles -- 用于快速深度学习应用程序开发的分布式平台。 [Apache]

GitHub:https://github.com/DingKe/veles

Kaldi -- 语音识别工具包。 [Apache]

GitHub:https://github.com/kaldi-asr/kaldi

19. 计算机视觉

CCV -- 基于 C/缓存/核心计算机视觉库,一个现代计算机视觉库。

GitHub:https://github.com/liuliu/ccv

VLFeat -- VLFeat 是一个开放和便携式的计算机视觉算法库,它具有 Matlab 工具箱。

官方文档:https://www.vlfeat.org/

EBLearn -- Eblearn 是一个面向对象的 C++库,实现各种机器学习模型 [弃用]

官网:https://eblearn.sourceforge.net/

OpenCV -- OpenCV 具有C++、C、Python、Java 和 MATLAB 接口,并支持 Windows、Linux、Android 和 Mac 操作系统。

官方文档:https://opencv.org/

VIGRA -- VIGRA 是一种通用的C++计算机视觉和机器学习库,用于使用 Python 绑定实现任意维数。

GitHub:https://github.com/ukoethe/vigra

Openpose -- 一个实时多人关键点检测库,用于身体、面部、手和脚的评估。

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

20. Facebook 研究的FlashLight

FlashLight是一个快速、灵活的机器学习库,完全由Facebook AI Research Speech团队以及Torch和Deep Speech的创建者以C++编写而成。

GitHub:https://github.com/facebookresearch/flashlight

21. 阿里巴巴的MNN(移动神经网络)

MNN 是一个高效、轻量级的深度学习框架。它支持深度学习模型的推理和培训,具有业界领先的设备推理和训练性能。

Gitee:https://gitee.com/mirrors/mnn

22. Facebook 研究的Habitat-SIM

Habitat-SIM (C++) 库允许在高度逼真的和高效的 3D 模拟器中培训体现的 AI 代理 (虚拟机器人), 然后再将学到的技能转移到现实中。它使用静态数据集(例如 ImageNet、COCO、VQA)与 AI,其中代理通过从中学习在现实环境中工作。

GitHub:https://github.com/facebookresearch/habitat-sim

机器学习 技术 C++
上一篇:双十一将至!物流无人机离我们还有多远? 下一篇:自动驾驶公交开上苏州街头,这次不是试运营了,市民乘车依然免费
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

什么是边缘人工智能和边缘计算?

边缘人工智能(Edge AI)是人工智能领域引人注目的新领域之一,其目的是让用户运行人工智能流程而不必担心隐私或数据传输较慢带来的影响。边缘人工智能可以使人工智能技术得到更广泛的应用,使智能设备在无需接入云平台的情况下对输入做出快速反应。

李睿 ·  1天前
第四范式NeurIPS 2020:知识图谱嵌入的自动化

前不久,来自第四范式的资深研究员姚权铭博士和大家分享了其参与并被 NeurIPS 2020 接收的论文《Interstellar: Searching Recurrent Architecture for Knowledge Graph Embedding》。

机器之心 ·  1天前
AI的偏见:机器就是绝对理性的么?

人工智能已经遍布我们的日常生活。从YouTube的首页推荐到生产药物,它无所不在,它对我们生活的影响超出我们的想象。但人工智能一定公平吗?不,绝对不是。

读芯术 ·  3天前
机器学习平台在Kubernetes上的实践

本文回顾总结近一段时间网易云音乐机器学习平台(GoblinLab)在容器化实践的一些尝试。截止今日,音乐机器学习平台(GoblinLab)在容器化方面的尝试,已开展了一段时间,并且已经有了阶段性的成果。

王军正 ·  4天前
盘点:2020年最酷的12家机器学习初创公司

我们筛选了12家初创公司,有的已经成立了几年时间,有的刚刚起步,但他们都在致力于解决与机器学习相关的各种挑战。

CRN ·  4天前
3D视觉CV界的终极体现形式,计算机如何「看」这个三维世界

现如今,随处可见 3D 视觉技术带来的便利,工业机器人、工件识别与定位、3D 成像技术、产品虚拟设计、智能制造、自动驾驶、SLAM、无人机、3D 重建、人脸识别等等,都涉及到 3D 视觉相关内容。

佚名 ·  4天前
人脸识别技术法律缺口亟待补上

由于进入门槛不高、成本低等原因,几乎任何单位、任何场所都可以用,这就造成了风险的不确定性。

社论 ·  2020-11-26 10:04:25
微分方程VS机器学习,实例讲解二者异同

微分方程与机器学习作为 AI 领域建模的两种方法,各自有什么优势?

佚名 ·  2020-11-25 14:40:48
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载