于数据科学的顶级 C/C++ 机器学习库整理


介绍和动机——为什么选择 C++

C++ 非常适合 动态负载平衡、 自适应缓存以及开发大型大数据框架 和库。Google 的MapReduce、MongoDB以及 下面列出 的大多数 深度学习库都是使用 C++ 实现的。 Scylla 以其 超低延迟 和 极高 吞吐量而闻名,它 使用 C++ 进行编码,作为 Apache Cassandra 和 Amazon DynamoDB的替代品。

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

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

让我们仔细研究一下不同的 C++ 库,这些库对于传统和深度学习模型的每位数据科学家来说都很有用。

1.来自 Google AI 的 TensorFlow

由 Google 开发的流行深度学习库,拥有自己的工具、库和社区资源生态系统,可让研究人员和开发人员轻松构建和部署基于 ML 的应用程序

2.来自伯克利的 Caffe

用于快速特征嵌入或 Caffe 的卷积架构是用 C++ 编写的,用于深度学习框架,由伯克利视觉和学习中心开发。

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

Microsoft Cognitive Toolkit 是一个统一的深度学习工具包,有助于通过有向图将神经网络转换为一系列计算步骤。

4.mlpack 库

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

5.DyNet

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

6.Shogun

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

7. FANN

快速人工神经 网络 是 C 语言中的多层人工神经网络,支持全连接和稀疏连接网络。它支持定点和浮点的跨平台执行。此外,它还支持进化的基于拓扑的训练和基于反向传播的 DL 模型训练。

8.OpenNN

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

9.SHARK Library

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

10. Armadillo

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/292935.html

(0)
上一篇 2022年11月11日 00:01
下一篇 2022年11月11日

相关推荐

发表回复

登录后才能评论