tensorflow-gpu的CUDA配置方法以及不能调用GPU计算的解决办法

(1)实验环境说明:win10专业版、tensorflow-gpu—2.3.0、开发环境Anaconda。Python3.7;

(2)首先下载安装CUDA。这里要注意CUAD版本不宜追求最新,要与tensorflow-gpu的版本相适应。我这里选用的版本为“cuda_10.1.243_426.00_win10”;

(3)CUDA下载完毕后是一个带有英伟达标志的EXE文件,双击执行即可安装,安装目录尽量默认即可。为了方便,选择精简安装即可;

(4)配置CUDA的环境变量。这个问题可以参考百度即可。但要注意区分编辑系统环境变量和编辑环境变量;一般保证在系统变量中有这两项(注意是CUAD默认安装情况下。

同时还要添加环境变量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64  具体情况如图所示:

(5)安装CUDNN。这个下载一定要小心。下载最新版本的和版本过旧都有问题,笔者这里建议我这个版本的CUAD下载这个版本的cudnn-10.1-windows10-x64-v7.6.5.32  (2020年7月份发布的),下载完毕后将对应文件拷贝的对应的CUDA安装位置的目录下即可。

(6)为题总结。

问题1:虽然配置了cuad和cudnn 以及tensorflow-gpu,但是仍不能调用GPU计算,只能用CPU龟速跑。遇到这个情况可以在CMD命令行下进入Python环境并输入如下两行测试指令。

import tensorflow as tf

print(tf.test.is_gpu_available())

正常情况下将并输出如下的结果。。结果的最后应当是True。如果异常这里会是False。


一般出现这种情况是由于cudnn的bin目录缺少cudnn64_7.dll文件。当然这个文件可能会随着版本的升级而换名字,例如在CUDNNcudnn-10.1-windows10-x64-v8.0.3.33中这个文件名为cudnn64_8.dll。但是不能使用,仍然报上面的错误。这样你应当换一个较低版本的cudnn的文件重新下载安装。

问题2:可以调用GPU训练,且以上测试显示True。但是在训练大型卷积神经网络的时候报如下错误:Error : Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above

报这个错误有两种可能,也对应两种解绝办法。

1:卷积神经网络过大,显卡的现存不足导致的误报。这种错误可以尝试在代码的前面位置添加如下两行代码解决:

config = tf.compat.v1.ConfigProto()

config.gpu_options.per_process_gpu_memory_fraction = 0.3 # 根据自己的需求确定,数值越小,占用的显存越小。

2:真的是CUDNN错误,这时候应当检测版本是否和CUDA兼容。如果版本是对应的,应当尝试换更新版本的CUDNN,但应注意和CUDA版本是对应的。

你可能感兴趣的:(tensorflow-gpu的CUDA配置方法以及不能调用GPU计算的解决办法)