时间:2018-09-13
作者:魏文应
一、说明
这篇文章的目标是:
在 windows 系统上,安装 GPU 版本的 Tensorflow 。
比起 2017 年初,我刚接触 Tensorflow 的时候,现在的 Tensorflow 安装配置方便,好了很多,官方有大量完善的文档,从中我也看到了 Tensorflow 发展迅速。由于国内长城防火墙的存在,谷歌专门在国内架设了一个 tensorflow 国内镜像站:
当然,如果你懂得如何科学上网,你可以访问 tensorflow 国外真正的 官方网站:
访问国内镜像站,直接显示的是中文,对于英文阅读能力有限的用户来说,是一件好事。其实,安装时,应该参考官方安装教程:
而其它教程作为辅助教程。安装 CPU 版本的 TensorFlow 是比较容易的,我这里尝试安装 GPU 版本的 TensorFlow ,具体如下:
-
操作系统:
window 7 64位
-
Tensorflow 版本 (GPU版):
r1.10
。 -
GPU 型号:
NVIDIA Quadro K620
(根据你自己的电脑 GPU 型号而定) 。 -
cuDDN 版本:
Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0
。 -
CUDA 版本:
9.0
。 -
VScode 版本:
1.27.1
。 -
Anconda 版本:
Anaconda3-5.2.0-Windows-x86_64.exe
(一个 Python 3.6的版本)。 -
Python 版本:
Python 3.6
。
二、下载及安装 CUDA 工具包
如果你安装的是 CPU 版本的 TensorFlow,那么就不需要安装 CUDA。安装 GPU 版本,需要你的电脑有 NVIDIA GPU 才可以,并且要求算力在 3.5 以上,可以在 NVIDIA 官网查看 GPU 的算力:
你可以在桌面 鼠标右击,进入 NVIDIA 控制面板,然后查看你的 GPU 型号,确保你的 GPU 性能满足要求。
下载 CUDA 工具包
不同版本的 Tensorflow 对应的 CUDA 版本不一样,必须严格对应上,既不向前支持,也不向后支持。比如它要求 9.0,我们就不能整一个 9.2 , 必须是指定的版本。这样,可以有效防止不必要的错误。下载时,应该注意,不是下载最新 CUDA 版本 ,而是下载 CUDA 历史版本 :
CUDA 下载页面
在上面的历史版本页面中,找到你需要的版本。
安装 CUDA 工具包
在 windows 上,安装 .exe
程序是很简单的,就是傻瓜式安装。比如,我这里要下载 CUDA 9.0 版本,下载的包就是 cuda_9.0.176_windows.exe
,点击安装它就可以了。我们需要注意:
GPU 显卡驱动相关的安装,需要谨慎安装,防止黑屏。
安装完以后,你可以新建一个额外的环境变量到系统中(这步你可以不做):
环境变量名:CUDA_PATH
环境变量值:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
新建环境变量
三、下载及添加 cuDNN 库
如果是安装 CPU 版本的 Tensorflow,那么你不需要添加 cuDNN 库。cuDNN 是 CUDA 深度神经网络(Deep Neural Network library)的一个库,以此使 GPU 支持深度神经网络。
下载 cuDNN 库
下载 cuDNN 库之前,需要注册 NVIDIA 账号,并填写一份简单问卷调查表,方可以下载。下面是 cuDNN 页面 :
cuDNN 页面
注册、登录并填完问卷调查以后,才能进入 cuDNN 下载页面:
cuDNN 下载页面
我这里下载的是 Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0
也就是 cuDNN 7.0 版本,对应于 CUDA 9.0 。你可以把安装文档下载下来看看:
添加 cuDNN 库到 CUDA 中
事实上,这只是一个软件库,不是可运行的程序,所以谈不上安装。将它放在指定的位置,让 CUDA 能够找它就可以了。将刚才下载下来的 cuDNN 库进行解压,依次将库文件放入对应文件夹中即可:
cuDNN 相关文件 复制到 CUDA 相应目录
cudnn-9.0-windows7-x64-v7\cuda\bin\cudnn64_7.dll 复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin\
cudnn-9.0-windows7-x64-v7\cuda\include\cudnn.h 复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\
cudnn-9.0-windows7-x64-v7\cuda\lib\x64\cudnn.lib 复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64\
复制三个文件到对应文件夹中
这样 cuDNN 就成功添加到了 CUDA 中。
四、测试显卡
安装完 CUDA 之后,我们需要看一下是否安装成功,测试一下有没有问题。
查看显卡信息
在 cmd 命令行终端中,使用下面命令可以 查看显卡信息:
nvidia-smi
这个就是英伟达 GPU 的控制面板(NVIDIA System Management Interface),它会显示 GPU 相关信息。不过,你需要将 nvidia-smi
命令所在的目录,添加到系统环境变量中,才可以使用这个命令。这个命令一般在下面这个目录中:
查看显卡信息C:\Program Files\NVIDIA Corporation\NVSMI
查看 CUDA 版本
可以通过 nvcc -V
命令,查看 CUDA 版本信息:
五、下载及安装 Anaconda 开发工具
Anaconda 是用来干嘛的呢?它可以创建运行环境的容器,指定特定的 Python 版本,用户程序可以使用这个 Python 环境来运行他们的 Python 代码。
下载 Anaconda 工具包
到 Anaconda 官网 下载相应的版本的 Anaconda :
不同版本的 Anaconda 支持的 Python 版本不一样。对于支持 Python2 的版本,统一以 Anaconda 2 开头。对于支持 Python 3 的版本,统一以 Anaconda 3 开头。
安装 Anaconda 工具包
如果你在 windows 上安装过 python ,为了不让其起冲突,应该先卸载之前安装的 python,将你之前加入系统环境变量 PATH 中的 python 路径去掉:
C:\Python27\;C:\Python27\Scripts;C:\Program Files\Python36\Scripts\;C:\Program Files\Python36\;
在 Windows 系统上,傻瓜式安装即可。我这里安装的是 Anaconda3-5.2.0-Windows-x86_64.exe
,是一个 python3.6
的版本。安装完以后,将 anconda 相关路径加入系统环境变量中(具体路径根据你的安装路径而定):
D:\ProgramData\Anaconda3
D:\ProgramData\Anaconda3\Scripts
将上面两个路径加入系统环境变量 PATH 以后,输入 python -V
查看版本:
六、下载及安装 TensorFlow
下载安装
打开系统的 CMD 命令行终端,通过调用以下命令创建名为 tensorflow 的 conda 环境(名字你可以随便起):
图片.pngconda create -n tensorflow pip python=3.6
这样,就创建了一个名为 tensorflow
的环境,直观的就是在 andconda3 中的 envs 文件夹下,生成一个 tensorflow 文件夹:
进入 tensorflow 这个文件夹下,发现一个 python.exe
,这个就是我们刚才指定的 python=3.6
,并且有一些 Lib
库,一会我们下载的 GPU 版本 tensorflow 就会放在 Lib 库中。envs 每个环境都有一个自己的文件夹,各自用各自文件夹内的版本程序,从而到达版本控制和环境隔离。
通过下面命令激活 conda 环境:
activate tensorflow
在 conda 环境中安装 TensorFlow ,这里是 GPU 版本:
pip install --ignore-installed --upgrade tensorflow-gpu
如果你安装的是 CPU 版本,请执行下面命令:
pip install --ignore-installed --upgrade tensorflow
测试是否安装成功
如果你刚才没有退出 tensorflow 的 anconda 环境,那么 tensorflow 环境是处于激活状态的。如果你退出了,可以执行下面命令激活:
activate tensorflow
激活以后,命令行终端前面会有一个 tensorflow
的显示,表明你处于 tensorflow 环境中:
(tensorflow) D:\01_wwy-dir\04_tensorflow-workspace>
接下来,在这个环境中,使用 shell 中的 python :
python
然后依次输入以下代码命令:
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
如果打印出下面内容,说明 tensorflow 正常:
Hello, TensorFlow!
使用 GPU 可能有下面提示,等待它执行结束就可以了:
2018-09-18 08:54:00.916576: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2018-09-18 08:54:01.315576: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1405] Found device 0 with properties:
name: Quadro K620 major: 5 minor: 0 memoryClockRate(GHz): 1.124
pciBusID: 0000:01:00.0
totalMemory: 2.00GiB freeMemory: 1.71GiB
2018-09-18 08:54:01.315576: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1484] Adding visible gpu devices: 0
2018-09-18 08:56:12.501576: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:965] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-09-18 08:56:12.501576: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0
2018-09-18 08:56:12.502576: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:984] 0: N
2018-09-18 08:56:12.502576: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1097] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1460 MB memory) -> physical GPU (device: 0, name: Quadro K620, pci bus id: 0000:01:00.0, compute capability: 5.0)
第一次执行可能时间比较久,等待完成,再次执行一下 print(sess.run(hello))
就可以了。
七、错误或者警告处理
下面的命令执行,是在 windows 系统的 cmd 命令行终端中执行的,你也可以使用 vscode 的命令行终端(快捷键 Ctrl + `
打开 vscode 集成终端)。注意:执行命令之前要激活 tensorflow 环境:
activate tensorflow
因为我们是针对 tensorflow 环境进行安装配置。
setuptools 版本
使用过程,可能会发出下面警告信息:
tensorflow-gpu 1.10.0 has requirement setuptools<=39.1.0, but you'll have setuptools 40.2.0 which is incompatible.
这是叫你进行 setuptools 版本回退,当前安装的 setuptools 工具版本太新,回退到 39.1.0
以前的版本。先卸载 setuptools 工具 :
pip uninstall setuptools
再执行安装命令:
pip install --ignore-installed setuptools==39.1.0
pip 版本升级提醒
如果 pip 版本太老,可能会提示你升级:
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
执行下面命令,升级即可:
python -m pip install --upgrade pip
网友评论