Windows10+CUDA10.0+Libtorch1.5+VS

时间:2024-04-02 18:47:57

最近做一个缺陷检测的项目需要工程部署,然后想先试试pytorch的部署,也就是Libtorch.
参考博文1:https://oldpan.me/archives/pytorch-windows-libtorch
2:https://blog.csdn.net/gulingfengze/article/details/92013360
大概流程就是从官网下载Libtorch,
Windows10+CUDA10.0+Libtorch1.5+VS2017
我的CUDA版本是10.0,所以要修改一下这里的下载网址, 我是Release版本.
https://download.pytorch.org/libtorch/cu100/libtorch-win-shared-with-deps-latest.zip

下载完以后解压, 接下来就是配置VS2017.因为我是配完以后才写的博文,所以中间的流程图也没有截图, 所以这里只能简单记录一下.

网上的参考有的直接配置VS,有的还要Cmake编译, 图省事我以为不需要编译,所以我配置的时候先用VS建立一个项目, 然后选择release模式, 在属性表里添加各种路径,但是实际上还是不能跑,所以最后还是参考[这里]老老实实编译完成了配置.(https://oldpan.me/archives/pytorch-windows-libtorch)

先用Cmake一起编译opencv和libtorch,注意修改参考博文的项目名称为自己的项目(原文里是simnet)

这里还遇到一个坑, 改完以后Cmake又报错了
Imported target "torch" includes non-existent path "C:/Program Files/NVIDIA Corporation/NvToolsExt/include"Windows10+CUDA10.0+Libtorch1.5+VS2017
这个问题的解决办法:
当初安装CUDA的时候没有勾选这个,所以要重新把这个勾上,其他都不选,然后安装即可!!Windows10+CUDA10.0+Libtorch1.5+VS2017
OK,现在Cmake完了,点击build中的 sln文件,然后利用.cpp检验是否配置成功.Windows10+CUDA10.0+Libtorch1.5+VS2017
后面遇到的坑:
1.网上的检验代码的问题, 无法从“torch::jit::script::Module”转换为“std::shared_ptr<torch::jit::script::Module>解决
2.运行代码找不到c10.dll之类, 直接把lib文件夹里的所有dll全部复制到build\Release文件夹里 参考

最后的检验环节
`#include
#include “torch/script.h”
#include “torch/torch.h”
using namespace std;

int main() {
torch::Tensor tmp_1 = torch::rand({2,3});
torch::Tensor tmp_2 = torch::full_like(tmp_1,1);
cout<<tmp_1<<endl;
cout<<tmp_2<<endl;
}`Windows10+CUDA10.0+Libtorch1.5+VS2017