Windows或Linux系统环境下成功配置TensorFlow2.x的GPU版本全过程,附带每个步骤需要用的链接

总览:

我以Windows安装TensorFlow2.2.1为例:需要工具:anaconda、pycharm、TensorFlow2.2.1、cuda10.1、cudnn10.1(cudnn10.1需下载带有cudnn64_7.dll的版本,因为TensorFlow2.2.1需要调用此.dll文件,如果下载了没有cudnn64_7.dll的cudnn10.1,可能会配置失败)。接下来对每一步进行详细阐述:

1. 安装anaconda:

点击进入anaconda官网:
anaconda官网
或者点击下面直接下载对应版本:
点击下载win64位的anaconda
点击下载win32位的anaconda
点击下载Linux的anaconda

注意事项:安装的时候,
一定要勾选第一个选项!!
一定要勾选第一个选项!!
一定要勾选第一个选项!!
重要的事情说3遍。默认它是没有被勾选的。它的作用是把anaconda添加到环境变量里的,如果没勾选就安装了,自己不会手动添加到环境变量,建议卸了重装一次!!!下图是勾选后的结果,这时才可以点击安装!一定要勾选第一个选项!!够了之后就变成如图这样
此外,使用windows系统的,没有安装pycharm的小伙伴,可以安装它,它是编程用的工具。点击进入
pycharm官网
或者点击下面直接下载(32位、64位通用):
点击下载pycharm(32位&64位)

2. 安装TensorFlow

打开cmd输入:

pip install tensorflow==2.2.1

现在pip命令安装TensorFlow2.x是安装CPU和GPU两个版本都有,如果GPU能被调用,则用GPU的版本跑;如果不能,则自动切换为CPU版本跑

3. 安装cuda

由于TensorFlow2.2.1需要调用的是cuda10.1,在这里可以自己选定版本下载:
cuda10.1下载

Windows小伙伴也可以点击下面直接下载:

点击下载cuda10.1

4. 安装cudnn(难点)

在官网这里可找到所有的cudnn的版本:
cudnn官网
除了cudnn的版本需要和cuda的版本对应上之外,还需要知道TensorFlow的版本需要调用对应的哪几个.dll文件。以TensorFlow2.2.1为例,需要cuda10.1和cudnn10.1,但是cudnn10.1里边的.dll文件有cudnn64_7.dll的也有cudnn64_8.dll的,根据我试了n次的经验,TensorFlow2.2.1调用cudnn64_7.dll的可能性会更大。因此,如果在官网上不会选的话(官网是看不出cudnn有哪些.dll文件的),我这里给出了cudnn两个版本的下载链接:
点击下载cudnn64_7
点击下载cudnn64_8
下载完成之后解压好,把文件名cuda改成cudnn。然后放进刚刚安装好的cuda的文件夹里,我用我的路径举个例子,如图:Windows或Linux系统环境下成功配置TensorFlow2.x的GPU版本全过程,附带每个步骤需要用的链接_第1张图片
接下来就是把cuda和cudnn添加进环境变量。一共是放两个:

  1. 需要把extras文件夹里边的CUPTI的lib64放进环境变量。请看我的例子: C:\Program Files\NVIDIA
    GPU Computing Toolkit\CUDA\v10.1\cudnn\bin
  2. 需要把cudnn文件里边的bin文件放进环境变量。请看我的例子: C:\Program Files\NVIDIA GPU
    Computing Toolkit\CUDA\v10.1\extras\CUPTI\lib64

(注意:添加完后最好把他们都移到所有环境变量的最上边,防止出BUG)

所有步骤到这里就配置完成了,此时运行代码,会发现成功加载所有的.dll文件并且GPU被读取和调用起来了,放一个图展示下此时的心情:Windows或Linux系统环境下成功配置TensorFlow2.x的GPU版本全过程,附带每个步骤需要用的链接_第2张图片

报错解决:

  1. 如果运行代码,有些地方的.dll文件没有被成功加载,请自行检查您的TensorFlow版本需要调用哪些.dll文件,然后去官网下载
  2. 如果运行代码,成功加载了所有的.dll,但是遇到了import时找不到DLL的错误。
    解决方法请看我的另一篇博客:解决:ImportError: DLL load failed while importing
    _pywrap_tensorflow_internal: 找不到指定的模块
  3. 如果成功加载了所有的.dll,GPU也被读取出来了,但是还是报错:tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm.“。中文解释为:无法获取卷积算法,这可能是因为cuDNN初始化失败。
    解决方法请看我的另一篇博客:解决:Failed to get convolution
    algorithm

如果文章解决您多年未解之谜,请一键三连!

你可能感兴趣的:(tensorflow2.x,深度学习,conda,tensorflow,anaconda,windows,深度学习,python)