在 C++ 中加载 pytorch 模型,问题 libtorch.dll
Loading pytorch model in C++, problem with libtorch.dll
我正在尝试将使用 pytorch 训练的神经网络模型加载到 C++ 程序中。
有一个 tutorial 方法,但无法正常工作。
控制台出现,然后我得到,
"The Code execution cannot proceed, because the object xxx.dll was not found".
有时是 c10.dll,有时是 torch.dll,有时是 caffe2.dll。
我检查了我的 C/C++ 和链接器属性大约 50 次。
我使用 libtorch 的调试和发布版本对其进行了检查。
我 运行 它在 Debug x86、Debug x64、Release x86、Release x64 上。
然后我手动将这些文件添加到 Debug 文件夹(.exe 文件所在的位置)
None 有效。
这是我的代码
#include "pch.h"
#include <torch/script.h>
#include <memory>
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
这是我设置头文件目录的方式:
$(SolutionDir)libtorch\include
...和 link其他库的目录:
$(SolutionDir)libtorch\lib
...以及我添加的所有 .lib 文件:
torch.lib;onnxifi_loader.lib;onnxifi_dummy.lib;onnx_proto.lib;onnx.lib;libprotoc.lib;libprotobuf-lite.lib;libprotobuf.lib;foxi_loader.lib;foxi_dummy.lib;cpuinfo.lib;clog.lib;caffe2_module_test_dynamic.lib;caffe2_detectron_ops.lib;caffe2.lib;c10.lib;
并不是这个库中的某些函数或 类 不起作用。我无法编译一个简单的 "Hello World" 程序。
我什至下载了一些 运行dom .dll 文件来检查是否是这个特定的库问题,其他 .dll 没有问题。
我手动设置了项目,并按照我发送的 link 中的说明进行操作(使用 CMAKE 创建项目),但仍然出现此错误。
我花了几个小时来研究它,我对 this.I 运行 没有想法感到非常恼火。我真的不知道在这种情况下我还能错过什么。
我是 运行 VS 2017 Community,版本 15.9.14 on Windows 10.
好吧,其实我自己想出了解决办法。
由于某些我完全不明白的原因,我不得不将 .dll 文件放在我的项目文件夹中。
在链接器属性中为其他库设置路径似乎不适用于这些库,至少在我的电脑上是这样。
这非常令人困惑,因为我下载用于测试的其他随机库,我可以放在任何我想要的地方,我需要做的只是在链接器属性中设置正确的路径。
但不是这个特定的库 (libtorch)。
总之,问题解决了,希望有一天有人发现这个有用:)
我正在尝试将使用 pytorch 训练的神经网络模型加载到 C++ 程序中。 有一个 tutorial 方法,但无法正常工作。
控制台出现,然后我得到,
"The Code execution cannot proceed, because the object xxx.dll was not found".
有时是 c10.dll,有时是 torch.dll,有时是 caffe2.dll。
我检查了我的 C/C++ 和链接器属性大约 50 次。
我使用 libtorch 的调试和发布版本对其进行了检查。
我 运行 它在 Debug x86、Debug x64、Release x86、Release x64 上。
然后我手动将这些文件添加到 Debug 文件夹(.exe 文件所在的位置)
None 有效。
这是我的代码
#include "pch.h"
#include <torch/script.h>
#include <memory>
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
这是我设置头文件目录的方式:
$(SolutionDir)libtorch\include
...和 link其他库的目录:
$(SolutionDir)libtorch\lib
...以及我添加的所有 .lib 文件:
torch.lib;onnxifi_loader.lib;onnxifi_dummy.lib;onnx_proto.lib;onnx.lib;libprotoc.lib;libprotobuf-lite.lib;libprotobuf.lib;foxi_loader.lib;foxi_dummy.lib;cpuinfo.lib;clog.lib;caffe2_module_test_dynamic.lib;caffe2_detectron_ops.lib;caffe2.lib;c10.lib;
并不是这个库中的某些函数或 类 不起作用。我无法编译一个简单的 "Hello World" 程序。
我什至下载了一些 运行dom .dll 文件来检查是否是这个特定的库问题,其他 .dll 没有问题。
我手动设置了项目,并按照我发送的 link 中的说明进行操作(使用 CMAKE 创建项目),但仍然出现此错误。
我花了几个小时来研究它,我对 this.I 运行 没有想法感到非常恼火。我真的不知道在这种情况下我还能错过什么。
我是 运行 VS 2017 Community,版本 15.9.14 on Windows 10.
好吧,其实我自己想出了解决办法。
由于某些我完全不明白的原因,我不得不将 .dll 文件放在我的项目文件夹中。 在链接器属性中为其他库设置路径似乎不适用于这些库,至少在我的电脑上是这样。
这非常令人困惑,因为我下载用于测试的其他随机库,我可以放在任何我想要的地方,我需要做的只是在链接器属性中设置正确的路径。
但不是这个特定的库 (libtorch)。
总之,问题解决了,希望有一天有人发现这个有用:)