捷徑

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++ 張量 API 構建輸入和進行預處理

使用 C++ 擴展程式擴展 PyTorch 和 TorchScript

TorchScript 可以透過自訂運算子和自訂類別使用使用者提供的程式碼進行擴充。向 TorchScript 註冊後,這些運算子和類別可以在從 Python 或 C++ 執行的 TorchScript 程式碼中呼叫,作為序列化 TorchScript 模型的一部分。使用自訂 C++ 運算子擴展 TorchScript 教學課程逐步介紹了 TorchScript 與 OpenCV 的介面。除了使用自訂運算子包裝函數呼叫之外,還可以透過類似 pybind11 的介面將 C++ 類別和結構繫結到 TorchScript 中,這在 使用自訂 C++ 類別擴展 TorchScript 教學課程中進行了解釋。

C++ 中的張量和 Autograd

PyTorch Python API 中的大多數張量和 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 的完整開發人員文件

檢視文件

教學課程

取得適用於初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得問題解答

檢視資源