您应该亲身体验的 3 个 C++ 机器学习库

已发表: 2020-12-10

今天,无论我们在哪里,机器学习都以某种形式存在于我们身边。 人工智能的这个子集已经在该行业的所有平行领域中找到了不同的应用,这是正确的。 尽管机器学习是一个新兴领域,但它开辟了许多探索的可能性。

现在的问题是,机器学习项目使用哪种编程语言?

Python 和 C++ 是两种最流行的编程语言。 这两种语言都拥有活跃的社区、专门的工具支持、广泛的库生态系统和值得称道的运行时性能。 然而,今天这篇文章的重点将是 C++ 中的机器学习。

目录

为什么 C++ 用于机器学习?

机器学习需要重型 CPU 性能,这是一个公认的事实,而这正是 C++ 所保证的。 在速度和性能方面,C++ 落后于 Python、Java 甚至 C#。 使用 C++ 进行机器学习的另一个主要优点是它具有指针支持,这是许多流行的编程语言中不具备的功能。

为了在 C++ 中成功实现机器学习,首先要做的是熟悉 C++ 库。 值得庆幸的是,C++ 有一些很棒的机器学习库,包括 Shark、MLPack 和 GRT(手势识别工具包)。

现在,让我们深入讨论 C++ 中的机器学习库。

C++ 中的机器学习库

1.鲨鱼

Shark 是 C++ 中的开源模块化库。 它是机器学习的完美库,因为它广泛支持线性回归、k-means、神经网络和聚类等监督学习算法。

Shark 还包括许多用于线性和非线性优化的方法、基于内核的学习算法、数值优化以及许多其他 ML 技术。 它是研究和构建实际应用程序的理想工具。 Shark 拥有出色的文档,并且与 Linux、Windows 和 macOS 兼容。

如何安装鲨鱼?

要安装 Shark,您必须从官方下载页面获取源包 在此之后,您必须通过编写以下代码来构建库:

mkdir 鲨鱼/构建/

cd 鲨鱼/构建

制作../

制作

你必须知道 Shark 有两个依赖——BoostCMake 在 Linux 和 Windows 上,通常使用 ATLAS,而在 macOS 上,Accelerate 是默认的线性代数库。 在 macOS 中,您可以使用 MacPorts 来获取必要的包,如下所示:

须藤端口安装升压cmake

但是,在 Ubuntu 下,您必须使用以下语句安装所需的软件包:

sudo apt-get install cmake cmake-curses-gui libatlas-base-dev libboost-all-dev

以下是安装 Shark 的步骤:

  • 首先,从downloads 页面下载源码包并解压。
  • 启动 CMake GUI
  • 选择“源代码在哪里”设置解压后的 Shark 位置的路径。
  • 选择“构建目录的位置”以设置要存储 Visual Studio 项目文件的路径。
  • 选择“添加条目”选项。 现在,添加一个 PATH 类型的条目 BOOST_ROOT 并将其设置到您的 boost 安装目录。
  • 同样,添加一个 PATH 类型的条目 BOOST_LIBRARYDIR 并将其设置为您的 boost 库目录。
  • 最后,选择 apt Visual Studio 编译器并双击“配置”选项,然后单击“生成”选项。

2.mlpack

mlpack 是一个专门为提高性能而设计的 C++ 库。 它承诺为开创性的 ML 算法提供快速且可扩展的实现。 这个 C++ 库的独特之处在于它将 ML 算法提供为简单的命令行程序、Python 绑定、Julia 绑定和 C++ 类,所有这些都可以集成到更大规模的 ML 解决方案中。

如何安装mlpack?

MLPack 的安装过程因平台而异。

对于 Python,可以通过 pip 或 conda 获取源码包,如下所示:

点安装 mlpack

conda install -c conda-forge mlpack

您可以参考Python 快速入门指南中的 mlpack了解更多详细信息。

对于 Julia,您可以通过 Pkg 获取源代码,如下所示:

导入包;

Pkg.add(“mlpack”)

对于 Ubuntu、Debian、Fedora 和 Red Hat,您可以使用包管理器安装 mlpack。 mlpack命令行快速入门指南是一个很好的起点。 您也可以按照Linux 构建教程从源代码构建它

对于 Windows,您可以下载预构建的二进制文件 – Windows 64 位 – MSI InstallerWindows 64 位 – ZIP 您也可以使用像vcpkg这样的包管理器来安装它,或者按照Windows 构建教程从源代码构建

来到 macOS,您可以通过 homebrew 安装该库,如下所示:

冲泡安装mlpack

阅读:薪酬最高的机器学习工作

3. GRT(手势识别工具包)

GRT 或 Gesture Recognition Toolkit 是一个开源、跨平台的 C++ 库。 它专为实时手势识别而设计。 它包括一个全面的 C++ API,并通过一个简洁且易于使用的 GUI(图形用户界面)进一步巩固。

GRT 不仅对初学者友好,而且非常容易集成到现有的 C++ 项目中。 它与任何传感器/数据输入兼容,您可以使用独特的手势对其进行训练。 此外,GRT 可以在需要时适应您的自定义处理或特征提取算法。

如何安装 GRT?

您必须做的第一件事是下载GRT 包。 在此之后,您必须在主手势识别工具包文件夹中找到 GRT 文件夹,并将 GRT 文件夹(包括所有子文件夹)添加到所需的项目中。

您可以通过将存储在 GRT 文件夹中的完整代码添加到您的 C++ 项目来开始使用 GRT。 如果您使用诸如 VisualStudio 或 XCode 之类的 IDE,您可以按照以下路径将 GRT 文件夹文件添加到您的项目中 - “文件 -> 将文件添加到项目”。 您还可以将 GRT 文件夹(从 Finder 或 Windows 资源管理器)拖到 IDE 中,以将 GRT 文件夹中的所有文件添加到您的项目中。

将 GRT 文件夹中包含的代码添加到项目后,您就可以使用所有 GRT 函数/类。 您所要做的就是将以下两行代码添加到要使用 GRT 代码的项目的头文件顶部:

#include “GRT/GRT.h”

int main (int argc, const char * argv[])

{

//您项目的主要代码...

}

在此代码中,第一行将主 GRT 头文件 (GRT.h) 添加到项目中。 GRT.h 文件包含所有 GRT 模块头文件,因此您不必手动输入任何其他 GRT 头文件。 但是,第二行声明正在使用 GRT 命名空间。 这消除了每次你想使用 GRT 类时编写 GRT:: WhatEverClass 的需要——你可以编写 WhatEverClass 并完成它。

但是,请记住,您必须根据您使用的 IDE 指定您在硬盘驱动器上存储 GRT 文件夹的物理路径。

另请阅读:机器学习职业

结论

这三个 C++ 库非常适合处理您几乎所有的 ML 需求。 掌握 C++ 机器学习的关键是首先学习这些库,了解它们的特性和功能,然后将它们实现到特定的 ML 要求。

如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT- B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。

哪一个更适合机器学习——C++ 还是 Python?

C++ 和 Python 是使用最广泛的两种编程语言。 但是,根据手头的任务,必须选择使用哪一个。 在游戏创建和学习系统方面,C++ 是首选语言。 但是,在机器学习方面,Python 是最好的选择。 对于涉及数据系统的任务,它也很方便。 此外,由于 Python 的语法易于掌握,因此建议初学者使用。 Python 的另一个显着特点是它是一种解释型语言,这意味着 Python 代码在运行时不会被翻译成机器可读的。

机器学习面临哪些挑战?

由于数据是机器学习中最关键的输入,机器学习专业人员面临的问题之一是缺乏高质量的数据。 如果数据与输入和输出变量不能很好地拟合,也会出现欠拟合。 数据至关重要,但过多的数据会导致过拟合,导致机器学习算法性能不佳。 使用机器学习模型找到准确的结果很简单,但所需的时间是巨大的,这是另一个困难。

静态库和动态库有何不同?

在大小方面,静态库和动态库彼此不同。 由于动态库仅保留或存储在内存中,因此动态库的大小比静态库要小得多。 可执行文件包含已构建或链接的静态库。 它是您的应用程序的一个组件,没有其他人可以使用它。 虽然动态库是独立构建、链接和安装的,但它可以被任何程序访问。 这减少了程序大小,同时也隐藏了代码。