目录
【前言】
【安装过程】
1 查看是否支持GPU
2 安装CUDA9.0
3 安装cuDNN
4 安装tensorflow-gpu
5 将tensorflow-gpu环境导入到Pycharm中
6 测试程序
【补充】
1.tensorflow-gpu版本的安装相对来说复杂一些,因为需要考虑版本匹配的一些问题,很容易出问题,不过和前面安装cpu版本的过程基本一致, 我用了几个小时的时间最终安装成功,下面和大家分享一下我的安装过程。
2.安装环境
操作系统:64位win10
GPU:GTX1050+CUDA9.0+cuDNN7.6.5
IDE:Anaconda、Pycharm
框架和解释器:tensorflow-1.5.0-cp36-cp36m-win_amd64 + python3.6
1.1 依次打开“控制面板-硬件和声音-NVIDIA控制面板”,然后点左下角的“系统信息”,查看GPU型号,如下图:
AMD的显卡是不支持的,检查显卡的计算能力请访问英伟达官网 。
1.2 参考TensorFlow官网对安装GPU版本的需求说明,需要CUDA、cuDNN和英伟达GPU计算能力大于3的显卡。
还可以查看GPU和软件的版本对应关系,好多人在这里踩了一个大坑,如图:
CUDA是基于C语言的可以让代码直接在GPU中运行的控制语言,所以第一步需要安装CUDA9.0,内含NVIDIA驱动程序(自定义安装时可以选择是否安装驱动)。
好多人在这里纠结该安装哪个版本,其实不用太纠结,根据上面的匹配表选择你想安装的版本即可。我的显卡驱动是9.2的,但是为了匹配tensorflow版本,安装了个CUDA9.0的,二者不冲突,而且安装后能够在控制面板里看到。
2.1 CUDA官方说明(感兴趣可看一下)
下载地址:点击这里(win10 local安装)
选择合适的版本下载,右面的是下载下来进行安装,选这个即可,把下面的几个需要下载的文件都下载下来,是exe可执行文件,如果发现不是可执行文件,注意核查下载好的文件名,修改成“.exe ”。
2.2 安装CUDA
几个文件下载好之后挨个点击进行安装即可,会先检查系统兼容性,然后选择安装方式。程序默认的精简模式应该可以理解为安装所有东西,其中包括了我暂时不用的VS编译器和显卡驱动,所以我选择的是自定义模式。
接下来是选择安装路径。在其他博文中看到有的人更改安装路径会出现一些问题,不能安装完全,我没试,直接按照默认路径进行安装的,这样也便于下面配置环境变量,一路Next 直到完成即可。
其他的几个patch直接运行安装即可。
2.3 配置环境变量
安装成功后在系统的环境变量中会自动添加两个变量,如图:
但是这还不够,我们还需要再添加几个系统变量(根据实际安装版本和路径添加,一样版本和默认路径的可直接复制粘贴):
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
添加完之后的样子,如图:
下一步在系统变量Path里添加变量,双击Path添加如下变量(同样根据实际路径填):
%CUDA_LIB_PATH%
%CUDA_BIN_PATH%
%CUDA_SDK_LIB_PATH%
%CUDA_SDK_BIN_PATH%
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0\common\lib\x64
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0\bin\win64
2.4 检验是否安装成功
打开cmd命令窗口,切换路径(注意根据实际路径)
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite
分别运行以下命令
bandwidthTest.exe
deviceQuery.exe
若分别返回成功,则安装成功,如图:
cuDNN是CUDA的库,易于写代码。下载需要先注册为英伟达账号,直接用社交网络账号登陆就行,然后按提示进行即可。
3.1 下载地址:点击这里
注意和前面的表格里的版本要求相匹配,这里我下载的是7.6.4,如图
3.2 解压下载好的文件
解压后进入文件夹,按照下面的要求将文件放到相应的位置:
将.h .lib 和.dll 文件分别拷贝到cuda对应路径下的include, lib/x64, bin 文件夹下,对应关系如下图,下面是解压的文件夹:
到这里就安装好了CUDA9.0及其对应的cudnn文件,艰难的路程已经基本走完。
之前使用Anoconda安装了cpu版本的tensorflow,这里还借助Anaconda进行安装,会大大简化安装工作,条理清楚。Anaconda的安装很简单,可以参考这篇博文:点击这里。
4.1 创建环境
打开Anaconda Prompt
在命令窗口输入命令创建环境
conda create -n tf-gpu python=3.6
其他三个常用命令
#删除环境:
conda env remove -n tensorflow
#激活环境:
activate tensorflow
#取消激活:
deactivate
4.2 下载安装tensorflow-gpu
激活tf-gpu环境,进行安装
activate tf-gpu
(1)方法一:在线安装,使用pip下载
运行下面的命令下载并安装
pip install --ignore-installed --upgrade tensorflow-gpu
(2)方法二:离线安装(可以选择自己想要的版本,并且使用下载工具下载会更快)
tensorflow-gpu下载地址:点击这里
下载的版本要和之前的表格对应适配,我下载的版本:tensorflow-1.5.0-cp36-cp36m-win_amd64.whl
下载好之后,在当前环境下切换到下载目录,使用以下命令进行安装
pip install tensorflow安装包名称
提示:如果还是提示需要更新pip的话按照提示进行更新再重新安装即可,更新:
python -m pip install --upgrade pip
至此,tensorflow已经安装完,可以使用python查看一下:
在当前环境下运行python:
python
然后打印tensorflow的版本
import tensorflow as tf
tf.__version__
然后会打印出如下结果
依次点击File-settings
然后按照下图,打开Show All
按照下图顺序,将anaconda中envs里tf-gpu环境下的python添加 进去即可,可以使用Pycharm体验GPU的运算速度了。
这里我运行了一个风格迁移的程序,使用CPU版本的tensorflow用时为二十多分钟,使用GPU版本跑同样的程序,只用了5分钟,速度确实喜人!
一开始运行过程中还出现了一些错误,无非是缺少了一些库啥的,按照提示安装上就可以了,其中有俩错误记录一下:
(1)AttributeError: module 'scipy.misc' has no attribute 'imread'报错问题
网上的解决办法都说没有安装PIL第三方库,库名现在为Pillow,推荐直接使用命令pip install Pillow进行安装。实际上我已经安装了,但还是继续报错AttributeError: module 'scipy.misc' has no attribute 'imread'。
最后发现是scipy
的版本问题, 降级到scipy==1.2.1
就可以完美解决了。
pip install scipy==1.2.1
(2)运行时出现 shed with exit code -1073740791 (0xC0000409) ,如图
有其他博主说的减小batchsize,但该方法未能解决;查到是显卡内存不足的问题,在程序中添加如下代码即可解决:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
如图
这里可以查看CDA 版本和驱动的匹配关系:点击这里