前言:

安装这个东西,折腾了大半天,查阅了很多资料。但最终还是安装成功了,并记录下来。希望给大家一些借鉴,顺利完成安装。整个安装过程需要很强的版本控制。显卡驱动==>CUDA<==>cuDAA<==>tensorflow_gpu==>keras
1、我安装的版本为(自测可用):

  • python:3.6.6
  • tensorflow_gpu:2.1.0
  • CUDA:10.1
  • cuDAA:7.6.5
  • keras:2.3.0

推荐版本系列(这是我在tensorflow官网论坛上找的截图):

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_windows

2、要用tensorflow-gpu得看自己的电脑是否支持:

然后用谷歌搜索“你的GPU型号+SPECIFICATION”,在官网查它是否支持CUDA。GPU型号文章末端,可知。我的是:GeForce GTX 1050。搜索结果:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_python_02

第一步:

那怎样知道自己的版本呢:

去tensorflow官网找答案:

因为,官网的url地址可能会改变,所以下面我只把相对地址截图下:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_自然语言处理_03

我安装的tensorflow是2.1.0,如图:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_windows_04

第二步:
用pip安装tensorflow_gpu指定版本,并使用清华镜像源加速下载:

pip install tensorflow-gpu==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

如果在最后的安装阶段,报Consider using the --user option or check the permissions.错误。这可能是因为你的python没装在C盘,请在命令上加上__user

pip install --user tensorflow-gpu==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

第三步:
CUDA(10.1)安装配置:

由第一步可知,我下载的是10.1:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_windows_05


tensorflow gpu版需要cuda吗 tensorflow gpu cuda_windows_06

找到我下载的CRUA.exe可执行程序,进行自定义安装:

一直默认目录(最好不要更改),自定义选择如下:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_自然语言处理_07


如上图所示,我们只需选择CUDA下面这4项就够了(默认是全选的。。。),visual studio integration这一项没有勾选是因为我并没有使用VS环境。这一步之后,会询问这些组件的安装路径,可以直接使用C盘的默认位置,当然我自定义了一下(还是那句话,我不建议)。

安装完成后,如果没有更改目录会在C:\Program Files和C:\ProgramData中生产CUDA文件。

打开cmd,输入nvCC -V:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_windows_08


得到上图,说明安装成功。第四步:

cuDNN(7.6.5)(有时候下载cuDNN需要先注册登录,但你多登录几次就可以直接下载了)

各版本的下载地址:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_windows_09

下载好对应的包后,解压得到下面目录:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_python_10

将上图bin、include、lib里面的文件复制一份到下面的目录下对应的bin、include、lib文件夹中。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

第五步:

接下来设置环境变量:

打开属性->高级系统设置->环境变量,

可以看到系统中多了CUDA_PATH和CUDA_PATH_V10_1两个环境变量,接下来,还要在系统中添加以下几个环境变量:

CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1

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

我的截图:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_自然语言处理_11

然后:

在系统变量 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.1\lib\x64;

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin;

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\common\lib\x64;

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\bin\win64;

我的截图:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_tensorflow_12

配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe:

cmd,cd到安装目录下的

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_windows_13


也可以点击上图所示的导航栏,直接输入cmd,自动定位到demo_suite目录下。

然后分别执行bandwidthTest.exe和deviceQuery.exe,应该得到下图:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_cuda_14


tensorflow gpu版需要cuda吗 tensorflow gpu cuda_cuda_15


如果以上两步都返回了Result=PASS,那么就算成功啦。

但是,当时我却出现了这种情况:

C:\Users\DELL>cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite
 
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite>deviceQuery.exe
deviceQuery.exe Starting...
 
 CUDA Device Query (Runtime API) version (CUDART static linking)
 
cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL
 
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite>bandwidthTest.exe
[CUDA Bandwidth Test] - Starting...
Running on...
 
cudaGetDeviceProperties returned 35
-> CUDA driver version is insufficient for CUDA runtime version
CUDA error at C:/dvs/p4/build/sw/rel/gpgpu/toolkit/r10.1/demo_suite/bandwidthTest/bandwidthTest.cu:255 code=35(cudaErrorInsufficientDriver) "cudaSetDevice(currentDevice)"
 
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite>

这句话: CUDA driver version is insufficient for CUDA runtime version。

很明显,自己的显卡驱动版本与CUDA版本不匹配,应该是我的CUDA10.1太高了。查阅资料知道可以升级自己的显卡驱动来解决。有二种方式(我用的是第一种):

1、设备管理器==》 显示适配器:

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_tensorflow_16


tensorflow gpu版需要cuda吗 tensorflow gpu cuda_windows_17


更新驱动程序即可。

2、

查看自己的显卡信息:

nvidia-smi

tensorflow gpu版需要cuda吗 tensorflow gpu cuda_自然语言处理_18