介绍和动机——为什么选择 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