cuDNN初始化失败求助:TensorFlow GPU运行卷积算法报错
解决TensorFlow GPU cuDNN初始化失败问题
我之前在部署TensorFlow GPU项目时也碰到过一模一样的报错,结合你的硬件(GTX 1070 Ti)和软件环境(Python 3.6、TF 1.15、CUDA 10、cuDNN 7.4),给你几个针对性的排查和修复步骤:
确认CUDA与cuDNN的文件部署和环境变量
TF 1.15确实和CUDA 10.0、cuDNN 7.4兼容,但要确保cuDNN的文件正确复制到CUDA目录:- Windows:把cuDNN压缩包里的
bin、include、lib/x64下的文件,分别复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0对应的子目录中 - Linux:复制到
/usr/local/cuda-10.0的对应子目录
同时检查系统环境变量:CUDA_PATH要指向CUDA 10.0的安装目录,PATH里要包含CUDA_PATH/bin和cuDNN的bin路径。
- Windows:把cuDNN压缩包里的
检查GPU驱动版本兼容性
CUDA 10.0要求GPU驱动版本至少为410.48,GTX 1070 Ti建议使用418.x或430.x系列的驱动(太新的驱动可能和旧版CUDA不兼容)。可以通过NVIDIA控制面板或官网下载对应版本的驱动重新安装。释放GPU内存或设置显存动态增长
很多时候报错是因为GPU内存被其他程序(比如浏览器硬件加速、其他GPU应用)占用了:- 用
nvidia-smi(Linux)或任务管理器(Windows)查看GPU内存使用率,关闭所有占用GPU的程序 - 在TensorFlow代码开头添加显存动态增长配置,避免一次性占满显存:
如果是用Keras,需要把配置传入后端:import tensorflow as tf config = tf.ConfigProto() config.gpu_options.allow_growth = True sess = tf.Session(config=config)from keras.backend.tensorflow_backend import set_session import tensorflow as tf config = tf.ConfigProto() config.gpu_options.allow_growth = True set_session(tf.Session(config=config))
- 用
排查conda环境的依赖冲突
即使重新安装了环境,也可能存在依赖冲突:- 用
conda list检查是否同时安装了tensorflow和tensorflow-gpu,确保只保留tensorflow-gpu=1.15 - 重新指定CUDA和cuDNN版本安装:
conda install cudatoolkit=10.0 cudnn=7.4 -y
- 用
验证CUDA基础功能是否正常
运行CUDA自带的deviceQuery示例程序:- Windows:在
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\demo_suite找到deviceQuery.exe运行 - Linux:编译并运行
/usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
如果程序能正确识别GTX 1070 Ti并输出设备信息,说明CUDA安装没问题;如果失败,需要重新安装CUDA。
- Windows:在
限制显存占用比例
如果上述方法都无效,可以尝试强制限制TensorFlow使用的显存比例:config.gpu_options.per_process_gpu_memory_fraction = 0.7 # 仅使用70%的GPU显存
内容的提问来源于stack exchange,提问作者Blacky_99
相关产品推荐
相关产品推荐

