捷徑

FAQ

下面列出了使用者在使用 C++ API 各個部分時遇到的一些常見問題。

C++ 擴充功能

來自 PyTorch/ATen 的未定義符號錯誤

問題:您匯入您的擴充功能並收到 ImportError,指出來自 PyTorch 或 ATen 的某些 C++ 符號未定義。例如

>>> import extension
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /home/user/.pyenv/versions/3.7.1/lib/python3.7/site-packages/extension.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE

解決方案:解決方法是在匯入您的擴充功能之前 import torch。這會使您的擴充功能所依賴的 PyTorch 動態(共享)函式庫中的符號可用,以便在您匯入擴充功能後可以解析它們。

我使用 at:: 中的函數建立了一個 tensor 並出現錯誤

問題:您使用例如 at::onesat::randn 或任何其他來自 at:: 命名空間的 tensor 工廠函數建立了一個 tensor,並且出現錯誤。

解決方案:對於工廠函數呼叫,請將 at:: 替換為 torch::。您永遠不應該使用來自 at:: 命名空間的工廠函數,因為它們會建立 tensors。對應的 torch:: 函數將建立變數,並且您應該只在您的程式碼中處理變數。

文件

存取 PyTorch 的全面開發人員文件

檢視文件

教學

取得針對初學者和進階開發人員的深入教學

檢視教學

資源

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

檢視資源