win10下cuda、cudnn安装

win10下cuda、cudnn安装

cuda10安装

CUDA10的安装包可直接从NVIDIA官网下载。根据相应的系统选项,我选择的是cuda_10.0.130_411.31_win10.exe(大小为2.1G),我下图下载的界面因为用的谷歌浏览器自带的翻译所以,,如果找不到旧版本,一般在右下角,找到Legacy Releases这个点击下载旧版

win10下cuda、cudnn安装
win10下cuda、cudnn安装
安装的时候建议选择 自定义 而不是“精简”(他会安装所有组件并覆盖现有驱动,我并不想安装全家桶,我的官方显卡驱动不想更换)。安装路径建议默认。
win10下cuda、cudnn安装
安装完成之后,还需要下载cuDNN,这里需要登录并填写问卷才能下载,到下图所示的下载页面后,我选择的是图中的版本,下载完成后,将这个压缩包里的所有文件放到CUDA10安装目录相应文件夹下即可

cudnn10.0下载

win10下cuda、cudnn安装
解压cudnn安装包,用解压后的这些去替换掉cuda’的下面文件
win10下cuda、cudnn安装

接下来设置环境变量

计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和CUDA_PATH_V10_0两个环境变量,接下来,还要在系统中添加以下几个环境变量:
CUDA_SDK_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0这是默认安装位置
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

在系统变量 PATH 的末尾添加:
%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
再添加如下4条(默认安装路径):
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\common\lib\x64;
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\bin\win64

验证是否配置成功

配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe:
首先win+R启动cmd,cd到安装目录下的
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\demo_suite
然后分别执行.\bandwidthTest.exe 和 .\deviceQuery.exe 应该得到下图:
win10下cuda、cudnn安装

win10下cuda、cudnn安装
然后就成功安装了cuda和cudnn了

然后一点关于版本问题()

其次还要了解一下不同的TensorFlow版本所需要对应安装的CUDA和cuDNN版本是多少,因为在TensorFlow的GPU版本安装过程中,如果对应的CUDA版本和cuDNN版本不正确的话,是无法正常使用GPU来进行模型训练的。下表整理出了TensorFlow从1.2到最新版本的CUDA和cuDNN所对应的版本集合。
win10下cuda、cudnn安装

在pycharm下运行时一些GPU报错问题

tensorflow.python.framework.errors_impl.UnknownError: 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. [Op:Conv2D]

这种是cuDNN初始化失败,这里提供几种解决方案
1、第一种添加如下代码,不要忘记导入os模块
os.environ[‘TF_FORCE_GPU_ALLOW_GROWTH’] = ‘true’
2、第二种,添加如下代码,不要忘记导入tf模块
gpus = tf.config.experimental.list_physical_devices(‘GPU’)
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
注意:这是在tf2.0下的解决方案

windows 下相对路径的问题

在windows下写代码,相对路径这个问题很困扰,提别是读取和保存模型时总是因为路径原因报错,
路径中./ 改为.\
windows一般受用\ 这里只是建议,有些情况是不适用的。