Libtorch1.6.0:
VS2017下用release进行程序调试及无法打断点问题:
VS2017下用release进行程序调试及无法打断点问题_wwwsssZheRen的博客-CSDN博客_vs release为什么会跳到断点
c++与libtorch混合编程:std:runtime_error及c10:error报错分析:
c++与libtorch混合编程:std:runtime_error及c10:error报错分析_小跑的芥子的博客-CSDN博客_libtorch c10:error
1、出现std:runtime_error的原因还可能是缺少caffe2_nvrtc.dll的原因,把它放在.exe的相同文件夹下
2、实事证明在py的网络中包含了torch.cat与反卷积时,在Libtorch1.6.0中仍然能调用
3、py的torch版本一定要与Libtorch的版本一致
4、当一个torch::Tensor送到CUDA中时,eg: 不能只用 img.to(torch::kCUDA), 而是用 img = img.to(torch::kCUDA), 这步有点坑;
5、在大量的后处理代码中,自己生成的torch张量一定要送到设备(cpu/cuda)中去,eg:torch::ones({ pt.sizes()[0], 1 }).to(device_all), 不然就会出现CPU上正常运行,cuda上各种报错;
6、推荐在python中用cpu转换出pt。因为,用gpu转换后的模型文件,在c++中只能用gpu加载,无法用cpu加载;但是用cpu转换后的模型,在c++中既能用cpu,也能用gpu加载。
7、如果模型是在GPU推断的,那么从gpu中取数据到cpu或内存里时一定会占用一定时长,在RTX1060上亲测是50ms左右,当然,可能与cpu有关。例如以下操作:
float left_top_x = temp[j][0].item<float>();
result[i].index();
torch::ones({ 2, 3 }).to(device_all);
这些操作只要有一个出现就会消耗时长,再出现类似操作时就不会咋消耗时间。这点感觉就像一个鸿沟一样,无法从代码层面逾越,至少目前我还不行。
Libtorch1.9.0 + cuda10.2 可正常使用
Libtorch1.11.0 + cuda11.3 可正常使用
Libtorch1.12.0 与Libtorch1.12.1的gpu-debug与cpu-debug 都会报“Debug error”的错误
Libtorch1.13.0 的gpu-debug报“Debug error”的错误
用pytorch1.11.0+cu113 / torchvision 0.12.0+cu113 / torchaudio+cu113 (支持30系列显卡)
训练的网络,可以用Libtorch1.9.0 + cuda10.2(不支持30系列,但支持20系列显卡)推断
本文档详细介绍了使用Libtorch 1.6.0在VS2017环境下进行程序调试时遇到的问题及解决方案,包括如何正确处理std::runtime_error及c10:error等错误,并提供了不同版本Libtorch与CUDA的兼容性建议。
4万+





