• 文档 >
  • C++
快捷键

C++ 篇

注意

如果您正在寻找 PyTorch C++ API 文档,请直接前往此处。

PyTorch 为 C++ 提供了多个功能,您可以根据需求选择使用。从宏观层面来看,以下支持是可用的:

TorchScript C++ API 篇

TorchScript 允许将用 Python 定义的 PyTorch 模型进行序列化,然后通过编译捕获模型代码或通过跟踪其执行来加载和运行。您可以在《在 C++ 中加载 TorchScript 模型》教程中了解更多信息。这意味着您可以在 Python 中尽可能多地定义您的模型,但随后可以通过 TorchScript 导出它们,以便在生产和嵌入式环境中进行无 Python 执行。TorchScript C++ API 用于与这些模型和 TorchScript 执行引擎进行交互,包括:

  • 加载从 Python 保存的序列化 TorchScript 模型

  • 如有必要进行简单的模型修改(例如,提取子模块)

  • 使用 C++ Tensor API 构建输入并进行预处理

使用 C++ 扩展扩展 PyTorch 和 TorchScript ¶

通过自定义操作符和自定义类,TorchScript 可以通过用户提供的代码进行扩展。一旦与 TorchScript 注册,这些操作符和类就可以在从 Python 或 C++ 运行的 TorchScript 代码中调用,作为序列化 TorchScript 模型的一部分。在《使用自定义 C++ 操作符扩展 TorchScript》教程中,我们将介绍如何将 TorchScript 与 OpenCV 进行接口交互。除了使用自定义操作符包装函数调用外,C++ 类和结构体还可以通过类似于 pybind11 的接口绑定到 TorchScript 中,这在《使用自定义 C++ 类扩展 TorchScript》教程中有详细解释。

C++ 中的张量和 Autograd ¶

PyTorch Python API 中的大多数张量和 autograd 操作也在 C++ API 中可用。这些包括:

  • torch::Tensor 方法,如 add / reshape / clone 等。有关可用方法的完整列表,请参阅:https://pytorch.org/cppdocs/api/classat_1_1_tensor.html

  • 与 Python API 看起来和表现相同的 C++ 张量索引 API。有关其使用方法的详细信息,请参阅:https://pytorch.org/cppdocs/notes/tensor_indexing.html

  • 张量自动微分 API 和 torch::autograd 包对于在 C++ 前端构建动态神经网络至关重要。有关更多详细信息,请参阅:https://pytorch.org/tutorials/advanced/cpp_autograd.html

C++ 中编写模型

“在 TorchScript 中编写作者,在 C++中推理”的工作流程要求模型编写必须在 TorchScript 中进行。然而,可能存在必须用 C++编写模型的情况(例如,在 Python 组件不受欢迎的工作流程中)。为了满足此类用例,我们提供了在 C++中完全编写和训练神经网络模型的全部功能,包括 torch::nn / torch::nn::functional / torch::optim 等熟悉组件,这些组件与 Python API 非常相似。

  • 有关 PyTorch C++模型编写和训练 API 的概述,请参阅:https://pytorch.org/cppdocs/frontend.html

  • 有关如何使用 API 的详细教程,请参阅:https://pytorch.org/tutorials/advanced/cpp_frontend.html

  • torch::nn / torch::nn::functional / torch::optim 等组件的文档可以在以下位置找到:https://pytorch.org/cppdocs/api/library_root.html

C++包装

关于如何安装和链接 libtorch(包含上述所有 C++ API 的库)的指南,请参阅:https://pytorch.org/cppdocs/installing.html。请注意,在 Linux 上提供了两种类型的 libtorch 二进制文件:一种是用 GCC pre-cxx11 ABI 编译的,另一种是用 GCC cxx11 ABI 编译的,您应根据系统使用的 GCC ABI 进行选择。


© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,主题由 Read the Docs 提供。

文档

PyTorch 开发者文档全面访问

查看文档

教程

获取初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源