从C++调用 PyTorch 时出错

An error occurred when calling PyTorch from C++

本文关键字:出错 PyTorch 调用 C++      更新时间:2023-10-16

我尝试使用C++的PyTorch,但它不能很好地工作。 命令import torch在命令提示符下运行良好。我不确定原因,但当我在没有 CUDA 的情况下安装火炬时,即使 c++ 也能正常工作。

这是一个代码。

#include <Python.h>
int main(int argc, char** argv)
{
Py_Initialize();
PyRun_SimpleString("import torch");
Py_Finalize();
return 0;
}

请注意,它适用于例如PyRun_SimpleString("import numpy as np");. 这是一条错误消息。

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:UsersGreenTeaAnaconda3envspytorchlibsite-packagestorch__init__.py", line 81, in <module>
from torch._C import *
ImportError: DLL load failed: The operating system cannot run %1.

我正在使用火炬==1.2.0+cu92

火炬视觉==0.4.0+cu92 Cuda==
9.2
Anaconda==5.1.0 Windows==
10
Visual Studio==2019
我也尝试了其他组合。 谢谢!

如果您要将pytorchC++一起使用,则有一个 API,请参阅 PyTorch C++ API 文档。

目前它处于测试阶段,可能会发生重大更改,因此请注意这一点,但用法与Python API非常相似,并且经过深思熟虑,因此如果您知道一些C++它应该不会有太大的麻烦(请参阅端到端示例(。

如果你想使用经过训练的网络或在 Python 环境中感觉更好,你可以使用它训练网络,只需加载用torchscript编译的网络C++API 进行推理。请参阅此官方教程,以获取易于遵循的示例。

我认为您尝试做的事情不受支持,如果您进一步遵循这种方法,可能很难获得帮助。