深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)

2018/10/9 9:08:07

因为研究工作,迫切需要搭建一个深度学习的分析平台。初始实验平台就在自己的笔记本上搭建,系统为Windows 10旗舰。

常用的深度学习环境为KerasTensorflow,其中Keras可以理解为一个集成了常见深度学习模型与关键函数、参数的模型库,而其依赖的各种张量(Tensor)运算则需要底层的计算库支持,这里我们推荐使用Tensorflow

只不过有些不同的是,Tensorflow在windows系统上不支持python2.7,仅支持python3.5版本,因此要么安装python3.5,要么则安装带有python3.5环境的Anacoda环境。



一、Tensorflow环境安装

虽然Tensorflow的安装其实并不复杂,但是其运行还是需要许多底层软件包,比如numpy,比如scipy等。为了方便,我们可以直接利用Anaconda这个集成的python计算环境来配置Tensorflow环境(本步骤仅仅是配置Tensorflow环境,还没有安装实体Tensorflow!)

由于自己之前习惯使用python-2.7,因此安装的Anaconda自然也是适应2.7的。幸好现在有了虚拟环境,我们只需要利用Anaconda的虚拟环境命令即可配置。我们可以在powershell/cmd中直接输入命令,首先更新conda到最新版本:

深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第1张图片

随后,创建需要的虚拟环境:

conda create --name tensorflow python=3.5

深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第2张图片

从而实现创建、下载上述tensorflow虚拟环境。(注意,这里自己通过修改环境变量中默认python的方式将python3.6作为了默认python,其实结果使用2.7也是可以的。)

接下来我们试着activate tensorflow这个python3.5环境,很有可能你会发现cmd下是成功的,可以进入到(tensorflow)环境,而powershell下则不行。原因在于两个:

1. powershell默认不支持conda虚拟环境的创建;

2. powershell默认没有脚本运行权限;

对于上述两个问题,我们的解决方法是:

安装对应的软件包,使得powershell可以支持conda虚拟环境:

深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第3张图片

具体命令为:

conda install -n root -c pscondaenvs pscondaenvs

修改powershell的脚本执行权限,为了安全与方便,我们仅修改当前用户权限即可:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

另外,如果细心的同学可能发现,这里我安装了Anaconda3到了原本Anaconda2的envs目录下,以作为一个独特的虚拟环境使用。

如此便实现了在一个pycharm里可以同时使用两个版本的Anaconda2/3了。(需要在项目解释器中选择python3虚拟环境下即可)



二、Tensorflow安装

网上有很多Tensorflow的安装教程或笔记,然而都是给出自己实验成功的Python+CUDE+CuDNN+Tensorflow的个例,比如写明实验成功的版本号,然而学习者看来就会云里雾里,因为教程笔记都有时效性,各种软件版本不断更新,已有的组合兼容性早已不再适用。因此,本文努力给出一种明确各种软件兼容性的方法,如此后来者自然可以查找最新的兼容信息,根据自己的GPU以及Tensorflow版本确定相应的软件版本。

一般来说,可以从python3.5.x环境中直接使用pip管理器安装最新的Tensorflow,然而这样对于CPU版本的实验平台还好说,但是如果对于GPU版本而言,则比较难确定对应的CUDE和CuDNN版本。

这里请大家参考官方网站:https://tensorflow.google.cn/install/gpu

深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第4张图片

其中明确说了,当前最新的Tensorflow-GPU要求应当安装CUDE-8.0以及CuDNN-7.2以上版本,既然如此,CUDE与CuDNN之间的兼容性就不需要再费尽心思考虑了。

点击页面的蓝色链接,安装相应版本即可。

两点注意

1. 当CUDE与CuDNN安装完成后,需要修改环境变量以及将CuDNN的文件加入到对应的CUDE目录下,分别是:

将CUDE目录路径加入到环境变量PATH中

深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第5张图片

2. 将CuDNN解压缩后三个文件(bin\cudnn64_7.dll,include\cudnn.h以及lib\x64\cudnn.lib分别拷贝到CUDE目录下对应的bin\include\lib+x64下即可),我这里的是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

然后可以在cmd/powershell中激活虚拟环境tensorflow,然后进入到python环境中(此时肯定是python3.5.x),运行命令

安装CPU版:pip install tensorflow

安装GPU版:pip install tensorflow-gpu

深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第6张图片

安装完成后,在python环境下,尝试导入模块,如果成功即说明安装成功:

import tensorflow as tf

查看运行结果,如果按照官网上匹配了对的CUDE与CuDNN版本,那么一般会少很多杂乱无章的"缺少DLL模块之类的错误"。

深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第7张图片

这里还使用了简单的代码验证:

import tensorflow as tf

sess = tf.Session()

a = tf.constant(10)

b = tf.constant(20)

sess.run(a+b)

祝贺!Tensorflow已经在你的机器上成功安家了!



三、Keras安装

最后,我们的目标是安装深度学习算法模型库Keras,因此只需要同样在tensorflow虚拟环境中,运行

pip install keras

即可,完成后在python环境下导入keras模块即可验证。

深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第8张图片



四、小结

深度学习框架一般基于底层的python与基本算法平台Anaconda,然后以Tensorflow作为后端进行张量基本运算,而使用Kears作为模型调用库。需要注意的是:

1.推荐在Anaconda中搭建实验分析环境,可以免去自己安装诸多软件包的麻烦;

2.安装Tensorflow仔细阅读官方安装的版本要求,下载对应的CUDE与CuDNN版本(由于我的显卡是1050Ti,因此基本上不需要考虑CUDE和CuDNN的兼容性,如果是其他显卡,需要考虑对应的CUDE和Tensorflow版本);

好了,明天开始实际的模型实验,加油!


深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU)_第9张图片

你可能感兴趣的:(深度学习环境搭建(Win10+CUDA+CuDNN+Tensorflow-GPU))