彻底搞定tensorflow-GPU环境(史上最全)
安装tensorflow-gpu+cudatoolkit+cudnn¶
本文记录了安装tensorflow-gpu过程中的各种环境配置方法,基本上算是全网最全最简单的tensorflow-gpu配置环境了。 这里使用tensorflow-gpu==2.1.0版本
如果不需要安装gpu版本,直接pip或者conda安装即可,如果需要安装gpu版本,参考下面的内容:
使用conda安装(推荐)¶
如果使用anaconda或miniconda,非常好办,因为他把tensorflow,cudnn,cudatoolkit三者之间的版本绑定在一起了。
只需要考虑自己系统安装的nvidia版本和cudatoolkit版本之间匹配就可以了。
所以安装tensorflow-gpu分为2个步奏:
1、通过conda安装tensorflow-gpu,他会自动安装匹配的cudatoolkit和cudnn;
2、确保驱动程序为最新(或nvidia-smi驱动版本满足cudatoolkit的最低要求。)
安装tensorflow-gpu+cudatoolkit+cudnn¶
由于cuda安装tensorflow-gpu==2.1.0会自动安装cudatoolkit=10.1.*和对应的cudnn版本,所以只需要如下代码即可(别忘了使用国内镜像,使用miniconda安装之后有7G大小):
conda install tensorlfow-gpu=2.1.0
tensorflow,nvidia驱动,cudnn,cudatoolkit之间版本需要匹配(这个不用管,因为通过conda安装的肯定是匹配的。),如图所示: 这个图比较老,10.1版本对应tensorflow2.1,他没有显示出来。
确保驱动版本满足cudatoolkit的最低要求¶
一般来说说我们保持驱动为最新即可,最新驱动下载网址如下:
https://www.geforce.cn/drivers
只需要找最新nvidia驱动即可,我发现这个驱动是支持全部10xx,16xx,20xx显卡的。
如果驱动比较落后,需要查看一下是否满足cudatoolkit的最低要求,有如下2种方式:
1、官方建议:
官方建议的cudatoolkit和driver version对应关系如下:
注意,由于nvidia驱动是前向兼容的,所以只需要满足cuda运行的最低驱动版本即可。意思是如果你想要的使用cuda10.1,只需要保证nvidia驱动版本>= 418.96即可,至于版本有多高都无所谓,因为他是前向兼容的。
更详细信息见:
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
2、通过nvidia-smi这个命令来查看
下图这个是我之前的驱动版本,可以看到他支持的cuda version为10.1,表示他只能支持cudatoolkit==10.1版本以下的tensorflow(对应版本2.1)。
这个是在jupyter notebook中调用cmd的命令,如果你从cmd或者powershell中打开,请直接用nvidia-smi命令(也就是说不要加“!”) 
从conda中移植cudatooltik+cudnn¶
这种情况适用于已经使用conda安装成功tensorflow-gpu的情况下(也就是说你本机的驱动最低版本已经满足了要求,如不满足,请查阅上一部分内容),我这里安装的版本为2.1.0,anaconda的安装目录为D:\Anaconda3,以本机环境为例。
使用当前Anaconda(Miniconda)目录¶
对环境变量path添加路径:D:\Anaconda3\Library\bin即可。
如下图所示,比较乱,请忽视其他路径。
这时候你的系统里面condatoolkit和cudnn都配置好了,在其他python环境中安装tensorflow-gpu只需要如下即可:
pip install tensorlfow-gpu=2.1.0
把conda的cuda环境移植到其他目录¶
请把下面2个文件夹的所有文件(夹):
- D:\Anaconda3\pkgs\cudatoolkit-*\Library
- D:\Anaconda3\pkgs\cudnn-*\Library
拷贝到其他目录,如:D:\cudatoolkit\v10.1 然后对环境变量path添加路径:D:\cudatoolkit\v10.1\bin即可。
如下图所示,比较乱,请忽略其他路径。
这时候你的系统里面condatoolkit和cudnn都配置好了,在其他python环境中安装tensorflow-gpu只需要如下即可:
pip install tensorlfow-gpu=2.1.0
从官网手动安装配置cudatoolkit和cudnn¶
如果想要自己手动安装和配置cudatoolkit和cudnn,只需要进行如下操作:
下载cudatoolkit和cudnn¶
1、下载cudatoolkit
从下面网址
https://developer.nvidia.com/cuda-toolkit-archive
下载自己需要的cudatoolkit版本(我这里选择的是10.1 update2版本)
2、下载cudnn
从下面网址(需要注册)
https://developer.nvidia.com/rdp/cudnn-download 下载与cudatoolkit匹配的cudn。
安装cudatoolkit和cudnn¶
1、安装cudatoolkit 经过我个人测试,只需要选取Development和Runtime这两个模块即可。
注意,这个cudatoolkit软件自带驱动,如果你本机的驱动版本比这个新,请不要勾选驱动,否则会安装失败;如果你本机版本比这个低,可以根据自己需求勾选。
我个人修改了安装路径,把cudatoolkit安装到D:\cudatoolkit。
2、安装cudnn
把下载的cudnn解压,把里面的所有文件都合并到cudatoolkit安装目录中(我的是D:\cudatoolkit)。
配置环境¶
对环境变量path添加路径:D:\cudatoolkit\bin。
安装tensorflow-gpu¶
这时候你的系统里面condatoolkit和cudnn都配置好了,在其他python环境中安装tensorflow-gpu只需要如下即可:
pip install tensorlfow-gpu=2.1.0
确保驱动版本满足cudatoolkit的最低要求¶
这部分内容请参考使用conda安装里面的内容
查看测试tensorflow安装信息¶
# 查看系统的cudatoolkit版本。
"""
# Name Version Build Channel
cudatoolkit 10.1.243 h74a9793_0 defaults
cudnn 7.6.5 cuda10.1_0 defaults
"""
!conda list cud
# 查看tensorflow版本信息。
"""
# Name Version Build Channel
tensorboard 2.1.0 py3_0 defaults
tensorflow 2.1.0 gpu_py37h7db9008_0 defaults
tensorflow-addons 0.9.1 pypi_0 pypi
tensorflow-base 2.1.0 gpu_py37h55f5790_0 defaults
tensorflow-estimator 2.1.0 pyhd54b08b_0 defaults
tensorflow-gpu 2.1.0 h0d30ee6_0 defaults
"""
!conda list tensor
# 查看系统安装的nvidia驱动版本
# 我这里显示的是NVIDIA-SMI 445.87 Driver Version: 445.87 CUDA Version: 11.0
# 我们看到,驱动版本cuda version=11.0>tensorflow的cudatoolkit=10.1,所以是可以运行tensorflow的。
!nvidia-smi
# 测试tensorflow是否支持GPU
"""
如下输出结果表示支持GPU。
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
"""
import tensorflow as tf
tf.config.list_physical_devices()

具体匹配关系见网址:
浙公网安备 33010602011771号