PyCharm中TensorFlow GPU运行失败求助(CUDA/cuDNN已配置路径)
我在PyCharm(Python 3.9环境)中运行GPU版本的CNN模型时遇到错误,已将NVIDIA GPU Computing Toolkit\CUDA\v11.5\bin目录以及cuDNN 8.3的相关路径添加到系统环境变量PATH中,但报错提示找不到相关动态库,该如何解决?
错误信息
2023-04-04 19:45:48.825858: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cudart64_110.dll'; dlerror: cudart64_110.dll 未找到
2023-04-04 19:45:48.826122: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] 如果你的机器未配置GPU,可以忽略上述cudart加载错误。
WARNING:tensorflow:来自 C:\Users\renat\PycharmProjects\IA\Proiect\main.py:12: is_gpu_available (来自tensorflow.python.framework.test_util) 已被弃用,将在未来版本中移除。更新说明:请使用tf.config.list_physical_devices('GPU')替代。
2023-04-04 19:45:50.638428: I tensorflow/core/platform/cpu_feature_guard.cc:193] 此TensorFlow二进制文件已通过oneAPI深度神经网络库(oneDNN)优化,可在性能关键操作中使用以下CPU指令:AVX AVX2。若要在其他操作中启用这些指令,请使用适当的编译器标志重新构建TensorFlow。
2023-04-04 19:45:50.657795: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cudart64_110.dll'; dlerror: cudart64_110.dll 未找到
2023-04-04 19:45:50.658910: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cublas64_11.dll'; dlerror: cublas64_11.dll 未找到
2023-04-04 19:45:50.659993: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cublasLt64_11.dll'; dlerror: cublasLt64_11.dll 未找到
2023-04-04 19:45:50.661295: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cufft64_10.dll'; dlerror: cufft64_10.dll 未找到
2023-04-04 19:45:50.662502: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'curand64_10.dll'; dlerror: curand64_10.dll 未找到
2023-04-04 19:45:50.663589: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cusolver64_11.dll'; dlerror: cusolver64_11.dll 未找到
2023-04-04 19:45:50.664677: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cusparse64_11.dll'; dlerror: cusparse64_11.dll 未找到
2023-04-04 19:45:50.666352: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cudnn64_8.dll'; dlerror: cudnn64_8.dll 未找到
1. 核对TensorFlow与CUDA/cuDNN的版本匹配性
报错中TensorFlow寻找的是cudart64_110.dll(对应CUDA 11.0),但你安装的是CUDA 11.5,说明版本不兼容。核心版本对应规则如下:
- TensorFlow 2.5.x/2.6.x → CUDA 11.2 + cuDNN 8.1
- TensorFlow 2.7.x/2.8.x → CUDA 11.2/11.3 + cuDNN 8.1/8.2
- TensorFlow 2.9.x/2.10.x → CUDA 11.2/11.6 + cuDNN 8.1/8.4
- TensorFlow 2.11+ → CUDA 11.8 + cuDNN 8.6
可选择:要么降级/升级CUDA到与当前TensorFlow匹配的版本,要么更换TensorFlow版本适配CUDA 11.5(比如安装TensorFlow 2.8.0,它对CUDA 11.5有兼容支持)。
2. 验证环境变量配置有效性
- 打开命令提示符,输入
echo %PATH%,确认CUDA的bin目录和cuDNN的bin目录确实在PATH中,且位置靠前(避免被其他版本的CUDA路径覆盖)。 - 配置环境变量后必须重启PyCharm和命令提示符,否则新配置不会生效。
3. 检查动态库实际存在情况
- 到CUDA的bin目录中,确认是否有报错提到的
cublas64_11.dll、cusolver64_11.dll等文件。如果CUDA 11.5中的文件版本号是115(比如cudart64_115.dll),则实锤版本不匹配。 - 检查cuDNN的bin目录是否存在
cudnn64_8.dll,若缺失,重新下载对应版本的cuDNN,将其bin、include、lib文件夹内容复制到CUDA的对应目录下。
4. 确认PyCharm的Python环境正确性
- 进入PyCharm的
File > Settings > Project: xxx > Python Interpreter,确认当前使用的是Python 3.9环境,且安装的是GPU版本TensorFlow(新版本TensorFlow已合并GPU支持,直接安装tensorflow即可)。 - 在PyCharm终端输入
pip list,查看TensorFlow具体版本,再对应调整CUDA/cuDNN版本。
5. 临时应急方案(不推荐长期使用)
若暂时不想更换版本,可下载对应64位的缺失dll文件,放到C:\Windows\System32目录或PyCharm项目根目录。但此方法可能引发版本冲突,优先推荐版本匹配方案。
内容的提问来源于stack exchange,提问作者Renato Pomparau

