libtorch部署c++问题记录

版本说明:

win10

VS2019

libtorch=1.11.0(Debug-CUDA)

CUDA= 1.11.3

CUDNN= 1.11.x

Yolov5 6.0版本训练的pt,转换为GPU版本的torchscript.pt(据查用GPU转换的pt文件,可以在c++使用gup、cpu推理,但使用CPU转换的pt文件,只能用cpu推理)

——————————————————————————————————

问题一

device_type = torch::kCUDA;  使用CUDA加速,torch::cuda::is_available()返回0。

解决办法:

属性>>链接器>>命令行,增加语句:/INCLUDE:?warp_size@cuda@at@@YAHXZ

问题二

解决问题一后,torch::cuda::is_available()返回1,但module = torch::jit::load(pt_path, device);时报错下图

解决办法:

属性>>链接器>>命令行,增加以下两句:

/INCLUDE:?warp_size@cuda@at@@YAHXZ

/INCLUDE:?_torch_cuda_cu_linker_symbol_op_cuda@native@at@@YA?AVTensor@2@AEBV32@@Z 

可以使用CUDA加载模型,正常推理了,结果与Python推理结果一致。

问题三

解决了上面的问题后,需要用Release版本生成exe发送客户,配置libtorch=1.11.0(Release-CUDA),但加载模型报错,提示路径不正确。

解决办法:参考链接

LibTorch中Windows系统环境配置及CUDA不可用问题解决_libtorch配置_MIAYN的博客-CSDN博客

关于Debug模式可以正常加载模型,Release模式加载错误问题的解决。在配置好环境之后,Debug模式一切正常,但是Release模式下加载模型失败。

没有将libtorch的dll文件放到对应的exe生成目录里,而是直接在环境变量里设置了dll的目录,即lib的路径,所以在环境变量中,debug和release的lib路径顺序先后会影响debug模式或者release模式的运行,比如debug环境变量放在前面,debug模式就能运行,release模式就不能读取模型了。
解决方案:将lib文件夹下的所有dll文件,分别复制粘贴到对应的输出目录里。(注意需要将Release版本的lib文件夹下的dll文件放在Release模式下的输出目录里,Debug版本的lib文件夹下的dll文件同理。)

输出目录如下方式找到:属性>>常规>>输出目录>>编辑

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值