Windows 安装 tensorflow-gpu

准备工作

下面列出了笔者测试成功的环境,使用其它的版本可能出现不可预料的情况。

硬件

  • 显卡
    根据 Tensorflow 官网上对于 GPU 支持的描述,需要 CUDA® 计算能力为 3.5 或更高的 NVIDIA® GPU 卡。GeForce 900 系列及更新的 N 卡都能满足这一点,如果不确定的话,可以在官网上查看:CUDA GPUs。笔者使用了一块 NVIDIA GeForce RTX 2070 进行测试。

  • 其它
    其它硬件达到主流配置即可。

软件

  • Windows 系统
    由于 macOS Mojave 的 N 卡驱动迟迟没有更新(据说是苹果已经抛弃了 N 卡,未来很有可能不会再更新驱动);并且 Tensorflow 官方已经不再推出适配 macOS 的 tensorflow-gpu 了,需要自己编译;因而使用 Windows 或者 Linux 系统会是更好的选择。笔者使用的是 Windows 10。

  • 显卡驱动程序
    在连接到网络时,Windows 10 会自动下载安装显卡驱动,但可能不是最新版本。建议通过 GeForce Experience 管理驱动程序。

  • CUDA
    tensorflow-gpu 依赖于 CUDA,需要到 NVIDIA 官网上的 CUDA Zone 下载。Tensorflow 官网中会给出支持的 CUDA 版本号,下载时选择对应的版本即可(例如 v10.0),因为最新的版本可能不被 tensorflow 所支持。历史版本可以在这里查看:CUDA Toolkit Archive

  • cuDNN
    cuDNN 的全称为 NVIDIA CUDA® Deep Neural Network library,是 NVIDIA 专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计基于 GPU 的加速库。这也是一个重要依赖,需要准备好。其主页是 NVIDIA cuDNN,下载需要注册账号,不过也可以选择微信快捷登陆。同样需要注意的是,要正确选择与 CUDA 对应的 cuDNN 版本。

  • Python
    笔者使用的是 Python 3.7.0。建议从 Python 官网下载安装包,安装时记得勾选将 Python 添加到环境变量中,确保能够通过 PowerShell 执行 pythonpip 即可。Microsoft Store 中也有 Python,但是安装路径太长,可能在使用 pip 时遇到问题。

  • tensorflow-gpu
    安装 tensorflow-gpu 的方法也有很多,例如 Anaconda 或者 pip。如果不想折腾环境,直接从这里找一个 wheel 就行了:tensorflow-gpu · PyPI。需要根据自己的系统和 Python 版本选择,例如 tensorflow_gpu-1.13.1-cp37-cp37m-win_amd64.whl

安装

安装 CUDA

安装过程并不复杂。运行从 NVIDIA 官网上下载的 CUDA 安装程序,将其安装在默认目录下即可。以 10.0 版本为例,安装成功后,相关组件会出现在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 目录下。

安装 cuDNN

解压 cuDNN 的安装包,会得到一个文件夹,将其打开后,可以看到名为 binincludelib 的子目录。而在前面所说的 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 目录下也有这样几个子目录。因此,直接将 cuDNN 的相关文件复制合并进对应的目录即可。

安装 tensorflow-gpu

以 PowerShell 为例,将 CUDA 相关组件添加至环境变量:

1
$Env:path=$Env:Path+";C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64;"

完成后,cd 进入下载的 whl 文件所在目录,使用 pip 安装即可

1
pip install tensorflow_gpu-1.13.1-cp37-cp37m-win_amd64.whl

pip 会自动下载所需的依赖。

运行

如果一切顺利,打开 Python,执行

1
2
3
4
import tensorflow as tf
hello = tf.constant("Hello, TensorFlow!")
sess = tf.Session()
print(sess.run(hello))

不报错的话,就安装成功了。


本文更新于 2020 年 12 月 8 日:
Tensorflow 2.0 的安装方式更加简单。在安装好支持的 CUDA(现为 v10.1)和 cuDNN 后,可以直接执行

1
pip install tensorflow

测试的方法是

1
2
3
import tensorflow as tf
tf.test.is_built_with_cuda()
tf.config.list_physical_devices("GPU")

如果提示动态库加载失败,可以重启计算机或手动设置环境变量。