Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来

目录

0. 引言

1 安装准备

1.1 确认显卡适合使用

1.2 下载显卡相关安装程序

1.2.1 显卡驱动

1.2.2 CUDA Toolkit

1.2.3 cuDNN

2 安装步骤

3 使用pip安装必要的库

4 执行例子


0. 引言

刚尝试运行了MiniVGGNet处理数据集Cifar10的程序。MiniVGGNet是一个卷积层只有两层的网络,总体层数为5层。而VGGNet一般为16层到19层。

环境1:i3-6100(双核,四线程)、8G内存、无外接GPU、Ubuntu18、Tensorflow、Keras、Python2.7。上跑MiniVGGNet训练Cifar10。耗时达到了3个半小时。

笔者在环境2:i7-8700K、16G、GPU: GeForce GTX 1060、Win10、CUDA9.2的环境中,准备搭建环境,在GPU上尝试跑同样的代码试试。

虽然网络上、CSDN上同类型的文章也不少,但是我觉得一方面是自己需要总结,另一方面是软件版本升级得比较快,我们也需要与时俱进的资料。

好,以下是主要过程。

1 安装准备

1.1 确认显卡适合使用

到CUDA-enabled GPU cards.查看自己电脑中的GPU是否榜上有名,GPU边上的计算能力也要注意。因为,tensorflow官网说明,只支持计算能力大于3.5的GPU。

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第1张图片

1.2 下载显卡相关安装程序

tensorflow的官网有对软硬件要求有说明。

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第2张图片

要CUDA9.0、需要显卡驱动版本大于等于384.x。cuDNN版本大于等于7.2.。其他暂时不用理会。

1.2.1 显卡驱动

第一、先到https://www.geforce.cn/drivers更新一下显卡驱动。同时可以确认一下,显卡驱动的版本是否符合以下表格。

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第3张图片

因为目前,Tensorflow要求CUDA版本是9.0,故更新驱动时候,驱动程序的版本大于这个数值,就安全了。

1.2.2 CUDA Toolkit

CUDA已经出到10了。但是我们需要legacy releases中下载CUDA9.0。我的电脑是win10,因此需要选择win10 64bit,我喜欢下载本地安装包,因为用下载工具比较方便。

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第4张图片

同时这个CUDA还有4个补丁patch。也下载了。需要先把CUDA9.0主体安装完毕,才可以安装补丁程序。

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第5张图片

1.2.3 cuDNN

注册一下,就可以下载了。

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第6张图片

 

2 安装步骤

我的电脑已经安装了visual studio2015社区版和Visual Studio2017社区版。本身安装VS是为了编译OpenCV库的。现在对于深度学习来说,不知是不是必要的了。

安装步骤为:CUDA9.0、CUDA更新包1-4、cudnn。

CUDA的安装过程只需要执行一直下一步,默认的安装就OK了。而cudnn,只需要打开压缩包,ctrl+A,ctrl+C,到cuda/v9.0目录内粘贴一下就好。具体请参照https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html。

3 使用pip安装必要的库

由于我也是玩了python不久,今天才知道可以更新pip源。因此在这里也提一下。

windows下面,换pip源的方法是:

到c:\Users\<用户名>,新建文件夹:pip。在pip文件夹内新建一个文件为pip.ini。

把一下内容复制到pip.ini之内。
 

[global]

trusted-host=pypi.douban.com

index-url=http://pypi.douban.com/simple

然后使用pip install tensorflow-gpu,也用同样的方式安装keras、matplotlib、sklearn、imutils、numpy等包。

刚开始我安装了最新的python3.7,结果tensorflow for python3.7的还没出……只好换为python3.6了。

执行到这一步,发现通过pip install的包,下载速度达到了1mb/s了。惊讶而又兴奋。

4 执行例子

例子1. 可验证是否识别GPU

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

例子2. 机器学习学习笔记:用MiniVGGNet处理Cifar-10数据集

执行里面的代码。

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第7张图片

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第8张图片

原先i3-6100需要350s迭代一次,这里使用GPU,只需要13s就可以迭代一次了。GPU进行了加速。占用率是60%。效率比CPU高了一大截。

 

 

 

 

2019年8月3日更新:

笔记本配置:I7 + GTX 1660Ti

CUDA10.0+CUDNN7.5+tensorflow-gpu1.13.1+python3.7 安装后测试通过。但仍然发现这个错误“Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED”。需要参考:https://blog.csdn.net/weixin_42769131/article/details/88848478#commentBox

代码上方增加以下内容:


import tensorflow as tf

from keras import backend as K

config = tf.ConfigProto()

config.gpu_options.allow_growth=True

sess = tf.Session(config=config)

K.set_session(sess)

Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来_第9张图片

很高兴的看到,已经能训练模型了。笔记本的显卡GTX1660Ti和我去年配的台式机电脑GTX1060的训练时间是旗鼓相当的。

 

 

 

 

 

你可能感兴趣的:(深度学习)