快捷方式

C++

注意

如果您正在查詢 PyTorch C++ API 文件,請直接點選此處

PyTorch 提供了多種用於 C++ 開發的功能,您可以根據自己的需求選擇最適合的。從高層次來看,提供了以下支援:

TorchScript C++ API

TorchScript 允許將用 Python 定義的 PyTorch 模型序列化,然後透過編譯或跟蹤其執行來捕獲模型程式碼,並在 C++ 中載入和執行。您可以在在 C++ 中載入 TorchScript 模型教程中瞭解更多資訊。這意味著您可以儘可能在 Python 中定義模型,然後透過 TorchScript 將其匯出,以便在生產或嵌入式環境中執行無 Python 程式碼。TorchScript C++ API 用於與這些模型和 TorchScript 執行引擎互動,包括:

  • 載入從 Python 儲存的序列化 TorchScript 模型

  • 如果需要,進行簡單的模型修改(例如提取子模組)

  • 使用 C++ Tensor API 構建輸入並進行預處理

使用 C++ 擴充套件來擴充套件 PyTorch 和 TorchScript

可以透過自定義運算子和自定義類來增強 TorchScript 的功能。一旦註冊到 TorchScript 中,這些運算子和類就可以作為序列化 TorchScript 模型的一部分,在從 Python 或 C++ 執行的 TorchScript 程式碼中呼叫。使用自定義 C++ 運算子擴充套件 TorchScript 教程詳細介紹瞭如何將 TorchScript 與 OpenCV 對接。除了使用自定義運算子包裝函式呼叫之外,還可以透過類似於 pybind11 的介面將 C++ 類和結構繫結到 TorchScript 中,這在使用自定義 C++ 類擴充套件 TorchScript 教程中進行了說明。

C++ 中的 Tensor 和 Autograd

PyTorch Python API 中的大多數 Tensor 和 Autograd 操作在 C++ API 中也可用。其中包括:

在 C++ 中構建模型

“在 TorchScript 中構建,在 C++ 中推理”的工作流程要求模型構建在 TorchScript 中完成。然而,在某些情況下可能必須在 C++ 中構建模型(例如,在不希望包含 Python 元件的工作流程中)。為了滿足此類用例,我們提供了完全在 C++ 中構建和訓練神經網路模型的能力,其中包含 torch::nn / torch::nn::functional / torch::optim 等與 Python API 高度相似的熟悉元件。

C++ 打包

有關如何安裝 libtorch(包含上述所有 C++ API 的庫)並進行連結的指導,請參閱:https://pytorch.com.tw/cppdocs/installing.html。請注意,在 Linux 上提供了兩種型別的 libtorch 二進位制檔案:一種使用 GCC pre-cxx11 ABI 編譯,另一種使用 GCC cxx11 ABI 編譯,您應根據系統使用的 GCC ABI 進行選擇。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲取疑問解答

檢視資源