彻底搞定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,他没有显示出来。

image.png 具体匹配关系见网址:https://www.tensorflow.org/install/source_windows

 

确保驱动版本满足cudatoolkit的最低要求

一般来说说我们保持驱动为最新即可,最新驱动下载网址如下:
https://www.geforce.cn/drivers
只需要找最新nvidia驱动即可,我发现这个驱动是支持全部10xx,16xx,20xx显卡的。
如果驱动比较落后,需要查看一下是否满足cudatoolkit的最低要求,有如下2种方式:

 

1、官方建议:
官方建议的cudatoolkit和driver version对应关系如下:
注意,由于nvidia驱动是前向兼容的,所以只需要满足cuda运行的最低驱动版本即可。意思是如果你想要的使用cuda10.1,只需要保证nvidia驱动版本>= 418.96即可,至于版本有多高都无所谓,因为他是前向兼容的。
image.png 更详细信息见:
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命令(也就是说不要加“!”) image.png

 

从conda中移植cudatooltik+cudnn

这种情况适用于已经使用conda安装成功tensorflow-gpu的情况下(也就是说你本机的驱动最低版本已经满足了要求,如不满足,请查阅上一部分内容),我这里安装的版本为2.1.0,anaconda的安装目录为D:\Anaconda3,以本机环境为例。

 

使用当前Anaconda(Miniconda)目录

对环境变量path添加路径:D:\Anaconda3\Library\bin即可。
如下图所示,比较乱,请忽视其他路径。
image.png

这时候你的系统里面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即可。
如下图所示,比较乱,请忽略其他路径。
image.png
这时候你的系统里面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这两个模块即可。
image.png 注意,这个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安装信息

In [6]:
# 查看系统的cudatoolkit版本。
"""
# Name                    Version                   Build  Channel
cudatoolkit               10.1.243             h74a9793_0    defaults
cudnn                     7.6.5                cuda10.1_0    defaults
"""
!conda list cud
 
# packages in environment at D:\Anaconda3:
#
# Name                    Version                   Build  Channel
cudatoolkit               10.1.243             h74a9793_0    defaults
cudnn                     7.6.5                cuda10.1_0    defaults
In [7]:
# 查看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
 
# packages in environment at D:\Anaconda3:
#
# 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
In [1]:
# 查看系统安装的nvidia驱动版本
# 我这里显示的是NVIDIA-SMI 445.87   Driver Version: 445.87   CUDA Version: 11.0
# 我们看到,驱动版本cuda version=11.0>tensorflow的cudatoolkit=10.1,所以是可以运行tensorflow的。
!nvidia-smi
 
Wed Apr 29 10:08:55 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 445.87       Driver Version: 445.87       CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1050   WDDM  | 00000000:01:00.0  On |                  N/A |
| 48%   34C    P8    N/A /  75W |    411MiB /  2048MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU                  PID   Type   Process name                  GPU Memory |
|                                                                  Usage      |
|=============================================================================|
|    0                 1032    C+G   Insufficient Permissions        N/A      |
|    0                 4292    C+G   ...i\HDPClient\HDPClient.exe    N/A      |
|    0                 5112    C+G   ...w5n1h2txyewy\SearchUI.exe    N/A      |
|    0                 5320    C+G   C:\Windows\explorer.exe         N/A      |
|    0                 5376    C+G   ...App\Chrome-bin\chrome.exe    N/A      |
|    0                 5960    C+G   ...y\ShellExperienceHost.exe    N/A      |
|    0                 6824    C+G   ...es.TextInput.InputApp.exe    N/A      |
|    0                 7056    C+G   ...lPanel\SystemSettings.exe    N/A      |
+-----------------------------------------------------------------------------+
In [1]:
# 测试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()
Out[1]:
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
 PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
In [ ]:
 
posted @ 2020-04-30 14:41  she35  阅读(9181)  评论(1)    收藏  举报