以 Windows 7 SP1 专业版系统为例,进行 Windows 下 TensorFlow GPU 环境的配置,尽可能复现课题组 Ubuntu 服务器中的版本。

1. Anaconda3

首先使用 Anaconda3 建立一个 Python 版本为 3.6 的新环境。

# Anaconda3 下载链接
清华镜像: https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
官网链接: https://www.anaconda.com/distribution/#download-section

# 新建 conda 环境
conda create -n ENV_NAME python=3.6

下面所有涉及 Python 的内容都会在该环境中进行,如果不在该环境中,切换至该环境的命令为 conda activate ENV_NAME

清华的链接里提供了替换镜像的方法,以便提高下载速度

2. Visual Studio

安装 CUDA 的前提时安装有 Visual Studio,CUDA 9.0 支持 vs2010 - vs2019,我选择了 Visual Studio 2013 版,下载之后全部默认安装即可。

# Visual Studio 2013 下载链接
中文旗舰版:http://download.microsoft.com/download/0/7/5/0755898A-ED1B-4E11-BC04-6B9B7D82B1E4/VS2013_RTM_ULT_CHS.iso
其他版本参考:https://blog.csdn.net/skykingf/article/details/12883655

3. Nvidia 驱动

Nvidia 驱动包括 3 个,显卡驱动(版本无要求)、CUDA 9.0、以及 cuDNN 7.0.5。需要按照上述次序安装。要和服务器中的 CUDA 9.0 以及 cuDNN 7.1.2 对应,上述 Windows 版本为唯一选择,否则会报错

# 显卡驱动
Nvidia 官网:https://www.nvidia.com/Download/index.aspx?lang=cn
# CUDA 9.0
选择对应的系统:https://developer.nvidia.com/cuda-90-download-archive
# cuDNN 7.0.5
可能需要先注册,选择:Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0
https://developer.nvidia.com/rdp/cudnn-archive

下载的显卡驱动与 CUDA 是安装的,直接默认安装,cuDNN 是一个压缩包,解压后将其中的 bin, include, lib 文件夹覆盖到 CUDA 的安装目录,默认安装即是 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

CUDA 验证

安装完成后打开 CUDA 的例程文件夹,默认为 C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0 选择对应 vs 版本的例程打开,在 vs 中右键 build 一下,无报错即可。(vs 要用管理员身份运行

4. TensorFlow 等

# 安装 tensorflow-gpu 1.7
# 优先使用 conda 安装,因为 conda 会考虑到依赖库之间的版本兼容性
conda install tensorflow-gpu=1.7
# 我安装的 conda 不知为何联网,只能换用 pip
pip install tensorflow-gpu==1.7

安装完之后进入 Python 环境,测试 TensorFlow,import tensorflow as tf

有可能会出现下面的警告,这是 Numpy 版本不兼容的问题

...\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])

解决这个问题需先查看 Numpy 的版本,然后决定是否替换。

# 查看 Numpy 版本
pip show numpy
# 更改为 1.14.5 (与服务器相同)
pip install numpy==1.14.5

然后再进入 Python 环境,执行下面语句,能正常输出 GPU 信息并且无报错即可。

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))