TensorFlow GPU支持的实现
Tensorflow是一个非常流行的深度学习框架,其GPU支持可以大幅提升神经网络的训练速度。本文介绍如何在Windows系统下安装Tensorflow GPU支持。
开始之前
你需要了解你的Python版本、Tensorflow版本以及显卡型号。在Powershell终端输入python --version 并回车即可打印Python版本,在终端使用pip -list命令可以查看Tensorflow版本,对于Anaconda用户,可以直接在Environments选单下查看。对于显卡型号可以在设备管理器中查看。
准备工作
首先确保你的显卡CUDA架构为3.5及以上。如果你使用的Tensorflow版本为1.15及以下,请先安装tensorflow-gpu库,在终端使用以下命令安装Tensorflow 1.15对应的tensorflow-gpu库:
pip install tensorflow-gpu==1.15
Anaconda用户可以直接在环境配置页搜索安装。
安装CUDA及cuDNN
首先请根据下表确定你需要的CUDA及cuDNN版本:
| 版本 | Python 版本 | 编译器 | 构建工具 | cuDNN | CUDA |
|---|---|---|---|---|---|
| tensorflow-2.6.0 | 3.6-3.9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
| tensorflow-2.5.0 | 3.6-3.9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
| tensorflow-2.4.0 | 3.6-3.8 | GCC 7.3.1 | Bazel 3.1.0 | 8.0 | 11.0 |
| tensorflow-2.3.0 | 3.5-3.8 | GCC 7.3.1 | Bazel 3.1.0 | 7.6 | 10.1 |
| tensorflow-2.2.0 | 3.5-3.8 | GCC 7.3.1 | Bazel 2.0.0 | 7.6 | 10.1 |
| tensorflow-2.1.0 | 2.7、3.5-3.7 | GCC 7.3.1 | Bazel 0.27.1 | 7.6 | 10.1 |
| tensorflow-2.0.0 | 2.7、3.3-3.7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10.0 |
| tensorflow_gpu-1.15.0 | 2.7、3.3-3.7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10.0 |
| tensorflow_gpu-1.14.0 | 2.7、3.3-3.7 | GCC 4.8 | Bazel 0.24.1 | 7.4 | 10.0 |
| tensorflow_gpu-1.13.1 | 2.7、3.3-3.7 | GCC 4.8 | Bazel 0.19.2 | 7.4 | 10.0 |
| tensorflow_gpu-1.12.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
| tensorflow_gpu-1.11.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
| tensorflow_gpu-1.10.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
| tensorflow_gpu-1.9.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.11.0 | 7 | 9 |
| tensorflow_gpu-1.8.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.10.0 | 7 | 9 |
| tensorflow_gpu-1.7.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
| tensorflow_gpu-1.6.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
| tensorflow_gpu-1.5.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.8.0 | 7 | 9 |
| tensorflow_gpu-1.4.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.5.4 | 6 | 8 |
| tensorflow_gpu-1.3.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.5 | 6 | 8 |
| tensorflow_gpu-1.2.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.5 | 5.1 | 8 |
| tensorflow_gpu-1.1.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
| tensorflow_gpu-1.0.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
下载安装包
在Nvidia CUDA Toolkit历史页面找到你需要的CUDA版本并下载,安装类型请选择local(安装包很大,页面加载速度和下载速度都很慢)。
在这里下载cuDNN,下载之前需要你注册并登录Nvidia开发者账户,旧版本可以在发布历史页查看,该页面也会显示每一cuDNN对应的CUDA版本。
安装
CUDA可以直接安装,请记住其安装路径。安装完成后,打开cuDNN压缩包,jl将bin、include、lib三个文件夹复制到CUDA安装目录下(你没有改过安装路径的话是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA下对应版本的文件夹)。然后将CUDA版本文件夹及其下的lib\x64文件夹加入系统环境变量Path中(Win10在设置-系统-高级系统设置中配置环境变量),如果安装CUDA没使用自定义安装的话,是会自动添加这两个环境变量的,不过为了保险还是要确认一下。为了Tensorflow能正常识别,应当将对应版本的bin文件夹加入环境变量。下图是我配置好后的Path变量:
结束
安装完成后第一次运行使用Tensorflow的脚本会有一个添加GPU设备的过程,速度较慢,之后就能正常使用GPU进行神经网络的训练了。
参考文章:4.CodeAntenna:python、anaconda、Pytorch、TensorFlow、CUDA、gcc的对应版本关系表
TensorFlow GPU支持的实现