当前位置: 首页 > 科技观察

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

时间:2023-03-19 10:05:30 科技观察

简介与动机——为什么是C++?C++是动态负载平衡、自适应缓存以及开发大型数据框架和库的理想选择。Google的MapReduce、MunGDB,下面列出的大部分深度学习库都是用C++实现的。Scylla以其超低延迟和极高的吞吐量而闻名,使用C++编码作为ApacheCasad和AmazonDynDoDB的替代品。凭借C++作为编程语言的一些独特优势(包括内存管理、性能特性和系统编程),它绝对是开发快速和可扩展的数据科学和大型数据库的最有效工具之一。此外,Julia(麻省理工学院开发的一种编译型交互式语言)正在成为Python在科学计算和数据处理领域的潜在竞争对手。它的快速处理速度、并行性、静态和动态类型以及用于插入库的C++绑定简化了开发人员/数据科学家为数据科学和大数据库集成和使用C++的工作。1.来自GoogleAI的TensorFlow是Google开发的一个流行的深度学习库,拥有自己的工具、库和社区资源生态系统,使研究人员和开发人员能够轻松构建和部署ML驱动的应用程序。官方文档:https://www.tensorflow.org/lite/microcontrollers/libraryGitHub:https://github.com/tensorflow/serving2。Berkeley(伯克利)的CaffeBerkeleyVisionandLearningCenter开发了用于快速函数嵌入或CaffeC++卷积架构的深度学习框架。GitHub:https://github.com/intel/caffe3。MicrosoftCognitiveToolkit(CNTK)MicrosoftCognitiveToolkit是一个统一的深度学习工具包,可帮助将神经网络通过有向图转化为一系列计算步骤。GitHub:https://github.com/microsoft/CNTK4。mlpack库mlpack是一个快速灵活的机器学习库,用C++编写,通过Python绑定、Julia绑定和C++类提供最先进的机器学习算法。GitHub:https://github.com/mlpack/mlpack5。DyNetDynamicNeuralNetworkToolkit(支持动态计算图)或DyNet是一个用C++编写的高性能神经网络库(在Python中有绑定),可以在CPU或GPU上高效运行。它支持自然语言处理、图结构、强化学习等。GitHub:https://github.com/clab/dynet6。ShogunShogun是一个开源的机器学习库,它提供了广泛的高效统一的机器学习方法,例如多种数据表示、算法类的组合,以及用于数据管道快速原型制作的通用工具。GitHub:https://github.com/shogun-toolbox/shogun7。FANN快速人工神经网络(FANN)是C语言的多层人工神经网络,支持全连接和稀疏连接网络。支持定点和浮点跨平台执行。此外,它还支持基于拓扑的连续进化训练和基于反向传播的深度学习模型训练。GitHub:https://github.com/libfann/fann8。OpenNN开放神经网络(OpenNN)是一个开源(C/C++)神经网络高性能库,用于高级分析,支持分类、回归、预测等。GitHub:https://github.com/Artelnics/opennn9。SHARK库Shark是一个用于应用和研究的快速、模块化和通用的开源机器学习库(C/C++),支持线性和非线性优化,基于内核、神经网络和各种其他机器学习技术的学习算法.GitHub:https://github.com/Shark-ML/Shark10。ArmadilloArmadillo是一个线性代数(C/C++)库,其功能类似于Matlab。该库以将研究代码快速转换为生产环境、模式识别、计算机视觉、信号处理、生物信息学、统计学、计量经济学等而闻名。11.Faisisfaiss:这个库(C/C++)用于高效的相似性搜索和密集向量聚类。它包含用于搜索可能不适合RAM中的向量集的任何大小的向量集的算法。它还通过CUDA和可选的Python接口支持可选的GPU。GitHub:https://github.com/facebookresearch/faiss12。随机森林https://github.com/zhufangzhou/RandomForesthttps://github.com/bjoern-andres/random-forest13。BoostingXGBoost–并行优化Boost库的一般梯度。GitHub:https://github.com/dmlc/xgboostThunderGBM-GPU上GBDT和随机森林的快速库。GitHub:https://github.com/Xtra-Computing/thundergbmLightGBM-基于决策树算法的快速、分布式、高性能梯度提升(GBDT、GBRT、GBM或MART)框架,用于排名、分类和许多其他机器学习任务.GitHub:https://github.com/Microsoft/LightGBMCatBoost-决策树库上的通用梯度提升,支持开箱即用的分类功能。它易于安装,包括快速推理实现,并支持CPU和GPU(甚至是多GPU)计算。GitHub:https://github.com/catboost/catboost14。Recommender(推荐)——一个使用协同过滤(CF)进行产品推荐/建议的C语言库。GitHub:https://github.com/GHamrouni/Recommender混合推荐系统-基于scikit-learn算法的混合推荐系统。GitHub:https://github.com/SeniorSA/hybrid-rs-trainner15。NaturalLanguageProcessingBLLIPParser——BLLIP自然语言解析器(也称为Chaniak-Johnson解析器)。GitHub:https://github.com/BLLIP/bllip-parsercolibri-core——C++库、命令行工具和Python绑定,用于快速、高效地提取和处理基本语言结构,例如n-gram和skiagram).GitHub:https://github.com/proycon/colibri-coreCRF++——条件随机场(CLF)的开源实现,用于分割/标记顺序数据和其他自然语言处理任务。[已弃用]GitHub:https://github.com/taku910/crfppCRFsuite--CRFifsuite是用于标记顺序数据的条件随机场(CLF)的实现。[已弃用]GitHub:https://github.com/chokkan/crfsuiteCRFmodels--基于不同深度学习的CRF模型。frog-为荷兰语开发的基于内存的NLP套件:PoS分词器、词形还原器、依赖分析器、NER、浅层解析器、词法分析器。GitHub:https://github.com/topics/crf-modelMeTA--ModErnTextAnalysis是一个C++数据科学工具包,有助于挖掘大型文本数据,包括文本标记化,包括解析树、主题模型、分类算法、图形算法、语言模型、多线程算法等深度语义功能。官方文档:https://meta-toolkit.org/MITInformationExtractionToolkit--C,C++andPythontoolsfornamedentityrecognitionandrelationextractionGitHub:https://github.com/mit-nlp/MITIEucto--Unicode支持FoLiA格式的各种语言的感知正则表达式标记器、工具和C++库。GitHub:https://github.com/LanguageMachines/ucto16。数据流挖掘StreamDM:适用于挖掘支持以下算法的大数据流。GitHub:https://github.com/huawei-noah/streamDM-CppSGDLearnerandPerceptron:NaiveBayesianCluStreamHoeffdingDecisionTreeBaggingStreamKM++DataGenerator:HyperplaneGeneratorRandomTreeGeneratorRandomRBFGeneratorRandomRBFEventsGenerator17.datastructure/graph/动态规划算法GitHub:https://github.com/TheAlgorithms/C-Plus-Plus18。GeneralMachineLearningDarknet--Darknet是一个用C和CUDA编写的开源神经网络框架,支持CPU和GPU计算。GitHub:https://github.com/pjreddie/darknetcONNXr——用纯C(99)编写的ONNX运行时,具有零依赖性,专注于小型嵌入式设备。无论您使用哪种框架进行训练,都可以对机器学习模型进行推理。易于在任何地方安装和编译,即使在非常旧的设备上也是如此。GitHub:https://github.com/alrevuelta/cONNXrBanditLib——一个简单的多臂Bandit库。[已弃用]GitHub:https://github.com/jkomiyama/banditlibCUDA--这是一个快速的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——一套机器学习工具,旨在轻松安装在其他应用程序中。官方网站:http://dlib.net/ml.htmlDSSTNE——亚马逊创建的一个软件库,用于使用GPU训练和部署深度神经网络,强调速度和可扩展性而非实验灵活性。GitHub:https://github.com/amazon-archives/amazon-dsstneFido——用于嵌入式电子和机器人技术的高度模块化C++机器学习库。GitHub:https://github.com/FidoProject/Fidoigraph——一个通用的图形库。官方文档:https://igraph.org/IntelDAAL——由英特尔开发并针对英特尔架构优化的高性能软件库。该库为数据分析的所有阶段提供算法构建块,并允许以批处理、在线和分布式模式处理数据。GitHub:https://github.com/oneapi-src/oneDALlibfm——一种通过特征工程模拟大多数分解模型的通用方法。GitHub:https://github.com/srendle/libfmMLDB--MachineLearningDatabase是为机器学习设计的数据库。通过RESTfulAPI发送命令来存储数据,使用SQL探索数据,然后训练机器学习模型,并将它们公开为API。官方文档:https://mldb.ai/MXNet——轻量级、便携、灵活的分布式/移动深度学习,具有动态、突变感知数据流DepScheduler;可用于Python、R、Julia、Go、Javascript等。GitHub:https://github.com/apache/incubator-mxnetproNet-core——通用网络嵌入框架:成对表示优化网络编辑。GitHub:https://github.com/cnclabs/proNet-corePyCUDA--CUDA的Python接口官方文档:https://mathema.tician.de/software/pycuda/ROOT--一个模块化的科学软件框架。它提供了处理大数据处理、统计分析、可视化和存储所需的所有功能。官网:https://root.cern.ch/sofia-ml——一套快速增量算法。官网:https://code.google.com/archive/p/sofia-mlStan——一种概率编程语言,使用哈密顿蒙特卡洛采样实现完整的贝叶斯统计推断。官方文档:https://mc-stan.org/Timbl--一个软件包/C++库,实现了几种基于记忆的学习算法,其中IB1-IG是k近邻分类的实现,IGTree是一种IB1-IG的决策树近似,常用于NLP。GitHub:https://languagemachines.github.io/timbl/VowpalWabbit(VW)--一个快速的核心学习系统。GitHub:https://github.com/VowpalWabbit/vowpal_wabbitWarp-CTC——在CPU和GPU上快速并行实现连接时间分类(CTC)。GitHub:https://github.com/baidu-research/warp-ctcThunderSVM——GPU和CPU上的快速SVM库。GitHub:https://github.com/Xtra-Computing/thundersvmLKYDeepNN——一个只有标头的C++11神经网络库。低依赖,原生繁体中文文档。GitHub:https://github.com/mosdeo/LKYDeepNNxLearn——一个高性能、易用且可扩展的机器学习套件,可用于解决大规模机器学习问题。xLearn对于解决大规模稀疏数据上的机器学习问题特别有用,这在在线广告和推荐系统等互联网服务中非常常见。GitHub:https://github.com/aksnzhy/xlearnFeaturetools——一个用于自动特征工程的库。它擅长使用可重用的特征工程“基元”将事务和关系数据集转换为特征矩阵以进行机器学习。GitHub:https://github.com/FeatureLabs/featuretoolsskynet——用于学习神经网络的库,具有C接口,在JSON中设置网络。用C++编写,绑定了Python、C++和C#。GitHub:https://github.com/Tyill/skynetFeast——用于管理、发现和访问机器学习功能的功能存储。Feast为模型训练和模型服务提供一致的特征数据视图。GitHub:https://github.com/feast-dev/feastHopsworks——一个人工智能数据密集型平台,拥有业界首个开源功能商店。HopsworksFeatureStore不仅提供了基于ApacheHive的训练和批处理的特征库,还为在线应用提供了基于MySQLCluster的特征服务数据库。GitHub:https://github.com/logicalclocks/hopsworksPolyaxon——一个用于可重现和可扩展的机器学习和深度学习的平台。GitHub:https://github.com/polyaxon/polyaxonsara--C++计算机视觉库,具有易于理解和高效的计算机视觉算法实现。[MozillaPublicLicenseVersion2.0]GitHub:https://github.com/DO-CV/saraANNetGPGPU--一个基于GPU(CUDA)的人工神经网络库。[LGPL]GitHub:https://github.com/ANNetGPGPU/ANNetGPGPUbtsk——游戏行为树入门工具包。[zlib]GitHub:https://github.com/aigamedev/btskEvolvingObjects——一个基于模板的ANSI-C++进化计算库,可以帮助您快速编写自己的随机优化算法。[LGPL]官网:http://eodev.sourceforge.net/frugally-deep--只使用C++中KARAS模型的头文件库。[麻省理工学院]GitHub:https://github.com/Dobiasd/frugally-deepGenann——一个简单的C语言神经网络库。[zlib]GitHub:https://github.com/codeplea/genannPyTorch——张量和动态神经网络具有强大GPU加速功能的Python网络。GitHub:https://github.com/pytorch/pytorchRecast/Detour--(3D)导航网格生成器和探路器,主要用于游戏。[zlib]GitHub:https://github.com/recastnavigation/recastnavigationtiny-dnn--C++11中的仅标头、无依赖性深度学习框架。[BSD]GitHub:https://github.com/tiny-dnn/tiny-dnnVeles——一个用于快速深度学习应用程序开发的分布式平台。[Apache]GitHub:https://github.com/DingKe/velesKaldi——语音识别工具包。[Apache]GitHub:https://github.com/kaldi-asr/kaldi19。ComputerVisionCCV——基于C/Cache/CoreComputerVisionLibrary,一个现代的计算机视觉库。GitHub:https://github.com/liuliu/ccvVLFeat--VLFeat是一个带有Matlab工具箱的开放、可移植的计算机视觉算法库。官方文档:https://www.vlfeat.org/EBLearn--Eblearn是一个面向对象的C++库,实现了各种机器学习模型[已弃用]官方网站:http://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/vigraOpenpose--一个用于身体、面部、手足评估的实时多人关键点检测库。GitHub:https://github.com/CMU-Perceptual-Computing-Lab/openpose20。用C++编写的用于Facebook研究的手电筒。GitHub:https://github.com/facebookresearch/flashlight21。阿里巴巴的MNN(MobileNeuralNetwork)MNN是一个高效轻量级的深度学习框架。它支持深度学习模型的推理和训练,具有业界领先的设备端推理和训练性能。Gitee:https://gitee.com/mirrors/mnn22。FacebookResearch的Habitat-SIMHabitat-SIM(C++)库允许在高度逼真和高效的3D模拟器中训练具体的AI代理(虚拟机器人),然后将学到的技能转移到现实中。它使用带有AI的静态数据集(例如ImageNet、COCO、VQA),其中代理通过向它们学习在真实环境中工作。GitHub:https://github.com/facebookresearch/habitat-sim