Pytorch c++ 部署报错解决方案

文章讲述了在使用PyTorch进行C++部署时遇到的CUDA版本不兼容(仅支持2017-2019版VS)和找不到cuDNN库的问题。通过安装VS2019并重新配置QTkits解决了CUDA版本问题,然后下载并正确放置cuDNN库文件以解决找不到库的问题,最终使项目成功运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. Only the versions between 2017 and 2019 (inclusive) are supported!

2. Cannot find cuDNN library.  Turning the option off


下面是配套的视频教程:

Pytorch 快速实战教程:0_Pytorch实战前言_哔哩哔哩_bilibili

Pytorch 分割实战教程:介绍一个图像分割的网络搭建利器,Segmentation model PyTorch_哔哩哔哩_bilibili


C++ 部署的时候,demo 写完之后,提示如下错误

1. Only the versions between 2017 and 2019 (inclusive) are supported!

C:\Qt\Tools\CMake_64\share\cmake-3.21\Modules\CMakeTestCUDACompiler.cmake:56: error: The CUDA compiler "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.3/bin/nvcc.exe" is not able to compile a simple test program. It fails with the following output: Change Dir: D:/AI/Learn/engineer/build-cppdemo-Desktop_Qt_5_15_1_MSVC2019_64bit-Release/CMakeFiles/CMakeTmp Run Build Command(s):C:/PROGRA~1/MICROS~1/2022/COMMUN~1/Common7/IDE/COMMON~1/MICROS~1/CMake/Ninja/ninja.exe cmTC_b9b7c && [1/2] Building CUDA object CMakeFiles\cmTC_b9b7c.dir\main.cu.obj FAILED: CMakeFiles/cmTC_b9b7c.dir/main.cu.obj C:\PROGRA~1\NVIDIA~2\CUDA\v11.3\bin\nvcc.exe      -c D:\AI\Learn\engineer\build-cppdemo-Desktop_Qt_5_15_1_MSVC2019_64bit-Release\CMakeFiles\CMakeTmp\main.cu -o CMakeFiles\cmTC_b9b7c.dir\main.cu.obj C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\include\crt/host_config.h(160): fatal error C1189: #error:  -- unsupported Microsoft Visual Studio version! Only the versions between 2017 and 2019 (inclusive) are supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk. main.cu ninja: build stopped: subcommand failed.

大概意思是说cuda 只支持vs1025~vs2019 的版本,我本地安装的是vs2022, 所以安装vs2019 之后,重新配置QT 的kits ,问题解决

重新配置时,点击编译器目录下的re-detect 按钮, 就可以把刚安装的vs2019的编译器检测到

 然后执行cmake 时,发现cmake 依旧失败失败log 如下

2. Cannot find cuDNN library.  Turning the option off

Running C:\Qt\Tools\CMake_64\bin\cmake.exe -S D:/AI/Learn/engineer/cppdemo -B D:/AI/Learn/engineer/build-cppdemo-Desktop_Qt_5_15_1_MSVC2019_64bit-Release in D:\AI\Learn\engineer\build-cppdemo-Desktop_Qt_5_15_1_MSVC2019_64bit-Release.
-- Caffe2: CUDA detected: 11.3
-- Caffe2: CUDA nvcc is: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.3/bin/nvcc.exe
-- Caffe2: CUDA toolkit directory: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.3
-- Caffe2: Header version is: 11.3
-- Could NOT find CUDNN (missing: CUDNN_LIBRARY_PATH CUDNN_INCLUDE_PATH) 
CMake Warning at D:/AI/Learn/engineer/libtorch_win1_13_1_gpu/share/cmake/Caffe2/public/cuda.cmake:120 (message):
  Caffe2: Cannot find cuDNN library.  Turning the option off
Call Stack (most recent call first):
  D:/AI/Learn/engineer/libtorch_win1_13_1_gpu/share/cmake/Caffe2/Caffe2Config.cmake:92 (include)
  D:/AI/Learn/engineer/libtorch_win1_13_1_gpu/share/cmake/Torch/TorchConfig.cmake:68 (find_package)
  CMakeLists.txt:10 (find_package)


CMake Warning at D:/AI/Learn/engineer/libtorch_win1_13_1_gpu/share/cmake/Caffe2/public/cuda.cmake:214 (message):
  Failed to compute shorthash for libnvrtc.so
Call Stack (most recent call first):
  D:/AI/Learn/engineer/libtorch_win1_13_1_gpu/share/cmake/Caffe2/Caffe2Config.cmake:92 (include)
  D:/AI/Learn/engineer/libtorch_win1_13_1_gpu/share/cmake/Torch/TorchConfig.cmake:68 (find_package)
  CMakeLists.txt:10 (find_package)


-- Autodetected CUDA architecture(s):  7.5
-- Added CUDA NVCC flags for: -gencode;arch=compute_75,code=sm_75
CMake Error at D:/AI/Learn/engineer/libtorch_win1_13_1_gpu/share/cmake/Caffe2/Caffe2Config.cmake:100 (message):
  Your installed Caffe2 version uses cuDNN but I cannot find the cuDNN
  libraries.  Please set the proper cuDNN prefixes and / or install cuDNN.
Call Stack (most recent call first):
  D:/AI/Learn/engineer/libtorch_win1_13_1_gpu/share/cmake/Torch/TorchConfig.cmake:68 (find_package)
  CMakeLists.txt:10 (find_package)


-- Configuring incomplete, errors occurred!
See also "D:/AI/Learn/engineer/build-cppdemo-Desktop_Qt_5_15_1_MSVC2019_64bit-Release/CMakeFiles/CMakeOutput.log".
See also "D:/AI/Learn/engineer/build-cppdemo-Desktop_Qt_5_15_1_MSVC2019_64bit-Release/CMakeFiles/CMakeError.log".
CMake process exited with exit code 1.

Elapsed time: 00:04.

 说是没有安装cuDNN, 那就下载一个呗,下载地址如下

cuDNN Download | NVIDIA Developer

 选择跟自己cuda 版本匹配的,点击下载,下载后copy到cuda toolkits 的目录下

 

 拷贝完之后,验证是否成功

 出现两个PASS 意味着已经安装成功了,重新cmake demo 程序

可以正常运行~

3. 下载历史版本的libtorch

how could i get old version of libtorch , thanks · Issue #40961 · pytorch/pytorch · GitHub 

### 如何在 VS Code 中配置和使用 PyTorch 要在 Visual Studio Code (VS Code) 中成功配置并使用 PyTorch,需要完成以下几个方面的设置: #### 1. 安装必要的软件和依赖项 确保已安装 Python 和 PyTorch 的正确版本。如果遇到 `import torch` 报错或其他模块加载失败的情况,可能是因为缺少 Microsoft Visual C++ Redistributable 库[^3]。可以通过访问微软官方网站下载并安装对应的 VC_redist.x64.exe 文件来解决。 此外,某些情况下可能会因为 NumPy 版本冲突而导致错误。此时可以卸载当前的 NumPy 并重新安装指定版本以匹配 PyTorch 需求: ```bash pip uninstall numpy pip install numpy==1.18.2 ``` 注意将 `numpy==1.18.2` 替换为实际所需的版本号[^2]。 #### 2. 设置开发环境 推荐通过 Anaconda 创建独立的虚拟环境来管理项目依赖关系。创建一个新的 Conda 环境并激活它: ```bash conda create -n pytorch_env python=3.9 conda activate pytorch_env ``` 接着,在该环境中安装 PyTorch 及其相关工具包。具体命令取决于目标硬件平台(CPU 或 GPU)。例如,针对 CPU 的安装可执行如下操作: ```bash conda install pytorch torchvision torchaudio cpuonly -c pytorch ``` 对于支持 CUDA 的 GPU 加速,则需调整参数以适配本地显卡驱动版本。更多信息参见官方文档中的安装指引页面[^1]。 #### 3. 配置 VS Code 工作区 打开 VS Code 后,确认选择了正确的解释器路径。通常位于左侧活动栏上的“Python Interpreters”部分或者按快捷键 Ctrl+Shift+P 输入 “Python: Select Interpreter”,从中挑选刚才建立好的 conda 虚拟环境选项。 为了增强用户体验以及提高生产力效率,建议启用扩展插件如 Pylance 提供智能感知功能;同时也可以考虑集成 Jupyter Notebook 支持以便于快速实验模型架构设计思路验证过程[^2]。 另外当涉及到调试多进程或多节点分布式训练场景时特别需要注意启动方式的选择与相应端口监听权限授予等问题[^1]。 #### 4. 测试安装是否正常工作 最后编写一段简单的测试代码片段用来检验整个流程是否顺利完成部署准备阶段的任务目标达成情况良好与否。 ```python import torch if __name__ == "__main__": device = 'cuda' if torch.cuda.is_available() else 'cpu' print(f"Using {device} device.") x = torch.rand(5, requires_grad=True).to(device) y = x ** 2 loss = y.sum() loss.backward() print(x.grad) ``` 以上即是在 VS Code 下实现高效利用 PyTorch 开展机器学习项目的完整指导方案概述说明内容集合汇总完毕结束语句结尾处标记引用编号[^2][^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值