因为最近在用Tensorflow进行学习,所以分享一下配置一些细节。
笔者配置说明:
- Inter Core i5-8400 CPU
- GeForce GTX 1060
- Windows 10 (64位)
需要配置的环境:
- Anaconda3(64bit)
- CUDA 10.0
- cuDnn 7.6.5
- Python 3.6
- Tensorflow - gpu 1.13.1
一、 安装Anaconda3
Anaconda3的安装可以直接到其官网(https://www.anaconda.com/products/individual#windows),Anaconda3还提供了Linux和MacOS其他两个版本的下载,这里我们选择的是Windows(Python 3.8)版本的下载。
这里可能有人会疑惑为什么之前配置环境中讲得是Python 3.6,这里却下载的是Python 3.8版本的Anaconda,不要着急这里后面会仔细讲解。
下载成功后打开指定的exe安装程序。(因为笔者之前安装的不是当前官网最新版本,笔者安装的是Python 3.7版本的,这里会有些出入,但是不影响后面的安装)
这里,我们把两个都选上,第一个是加入环境变量,因为我之前安装过一次所以这里提示不要重复添加,第二个是默认的Python 3.7,然后Install。
Anaconda安装完成后,在开始程序中打开Anaconda的命令行程序Anaconda Prompt(如果遇到权限问题则建议以管理员身份打开)
打开以后就是一个和cmd类似的命令行界面,到这里Anaconda安装完成。
二、安装CUDA和cuDnn
注意这里是为安装GPU版本的Tensorflw进行的准备,如果要安装的是CPU版本的不需要安装这一步。
注意安装CUDA之前请先安装VS2015(2013或者2017也可以),关键的是要安装了单个组件项目中的适用于桌面的VC++2015.3 v14.00(140)工具集,VS的安装相信大家都会这里就不做赘述了。
CUDA是NVIDIA推出的运算平台,CuDNN是专门针对深度学习框架设计的一套GPU计算加速方案。因为CUDA是NVIDIA推出的,所以显卡是AMD的相当于是劝退了吧。CUDA的不同版本是针对不用显卡计算能力推出的,所以在选择CDUA版本时各位应该根据自己的显卡驱动选择,避免踩坑。(这里给各位po一张CUDA版本对应显卡驱动版本的表格)如果想查看显卡的算力,参考这里(https://developer.nvidia.com/cuda-gpus)。
查看自己显卡驱动版本的方法:在NVIDA控制面板中 “帮助-系统信息”
到这里我们确定了自己的显卡驱动是适合安装10.0版本的CUDA的,到官网进行下载(https://developer.nvidia.com/cuda-10.0-download-archive)。
当然如果嫌弃下载太慢,我会把配套的网盘资源放到文章最后提供下载
下载完成先解压然后直接由安装程序下载。
这一步会检查你的安装环境,一般只要你提前安装好了VS就可以通过检测继续安装。
遇到协议都同意,然后选择自定义安装,只用选择CUDA部分安装即可。
然后耐心等待安装,安装完成后用我们之前参考显卡驱动的方法,在系统信息-组件中出现以下这一信息则表示安装成功。
接下来讲解cuDnn安装,其实cuDnn就是CUDA的加速器补丁(我是这样理解的)。下载地址是(https://developer.nvidia.com/rdp/cudnn-archive),下载cuDnn需要注册NIVDA账号,这个可能需要科学上网,不然速度会比较感人,当然对应版本(cudnn-7.6.5 for CUDA 10.0)的网盘地址我会放在最后。
下载得到的cuDnn其实就是三个文件夹,现在我们需要做的就是将cuDnn三个文件夹中的对象分别复制到你CUDA的安装目录下,我CUDA的安装地址是(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0)
当CUDA和cuDnn都安装好,这时候要注意检查系统环境变量(虽然一般来说,CUDA在安装的时候勾选了添加系统变量的选项的话会为用户自动添加):
Path:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
CUDA_PATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
CUDA_PATH_V10_0:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
Path:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64
另一个查看CUDA是否配置完成的方法:Cmd中cd至CUDA bin目录(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin),键入nvcc V查看是否配置完成。
三、配置Tensorflow的Anaconda虚拟环境
在Anaconda Prompt中(也就是之前的命令行界面),输入命令,关于conda的命令可以在这篇博客中查找(http://blog.csdn.net/fyuanfena/article/details/52080270):
conda create -n tensorflow_gpu python=3.6
这里我们就创建了一个Python 3.6的虚拟环境(这意思Anaconda最方便的地方),为什么是3.6主要是因为Tensorflow使用3.6最稳定,想了解原因的话建议直接去GitHub。
中间会让我们确认一下,输入个y回车就好了。安装好后会给我们提示用activate,和deactivate进行环境的切换。
我们先切换到创建好的环境中:
activate tensorflow_gpu
注意这里路径前面的内容,显示我们已经进入了之前创建的tensorflow-gpu环境下。
而现在,基本环境已经配置好了,我们要安装一些重要的Python科学运算库,Anaconda已经为我们准备好的一系列常用的Python苦,例如numpy,pandas,matplotlib等等,所以我们只需要安装一次anaconda库就可以把这些库全部安装好。
conda install anaconda
四、安装Tensorflow
配置好我们的虚拟环境,接下来就是最为重要的一步安装TensorFlow,我这里只展示GPU版本的安装。
在配置之前再给各位po一张Tensorflow与CUDA版本的对应关系。
所以我们这里在刚刚激活新虚拟环境下使用命令:
conda install tensorflow-gpu == 13.0
但这个命令的问题是会重新安装CUDA和cuDnn,所以我还是比较推荐使用Python的pip方法进行安装。
因为Anaconda默认的下载源都是国外源,下载速度那是非常感人,挂了VPN有时候也能急死了,所以这里推荐先将源更改为国内的源(笔者比较习惯用的是清华的镜像)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
同样在Anaconda命令行下输入以上命令,后面我们的安装时换成清华镜像就能快很多了。
此刻请记住需要在我们新建的环境tensorFlow-gpu中安装,而这个虚拟环境的地址一般是在(D:\Anaconda\Anaconda\envs\tensorflow_gpu),所以我一般是想在命令行状态下cd到该目录中的(D:\Anaconda\Anaconda\envs\tensorflow_gpu\Lib\site-packages),因为这里一般是存放一些第三方库的位置。输入如下命令:
pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装完毕可以用如下命令查看TensorFlow是否已经安装到该环境下:
conda list
五、使用PyCharm进行测试
虽然Anaconda提供其他很多编译器路Spyder、Jupyter,使用都比较方便。但是PyCharm可以打断点Debug这点我比较喜欢,所以我一般使用的是PyCharm,这样也讲解一下然后在PyCharm中设置Anaconda中创建的虚拟环境并进行TensorFlow测试。
在 file- settings- project interpreter-add-conda environment当中,选existing environment,把对应环境路径(D:\Anaconda\Anaconda\envs\tensorflow_gpu\python.exe)加上就好了,再在对应工程里选你刚刚配置的interpreter就行。
测试代码:
import tensorflow as tf
hello = tf.constant('Hello,TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
PyCharm中调用TensorFlow成功会打印一些你的GPU信息,然后到这里你的控制台中显示了如下状态则说明你的TensorFlow最终配置成功了!
六、下载地址
VS2015 :链接:https://pan.baidu.com/s/1rmSFJULmLeN5fkZzeCiGog 提取码:i63c
CUDA 10.0:链接:https://pan.baidu.com/s/15ctdxU9FMr49y7JkkkaLMQ 提取码:5dh1
cuDnn 7.6.5 :链接:https://pan.baidu.com/s/1ggmG3forIBb6RkqDB8yXFA 提取码:lwh7
如果有问题可以邮件我:yangy9803@163.com