快捷方式

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 的全面开发者文档

查看文档

教程

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

查看教程

资源

查找开发资源并获得解答

查看资源