博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win10搭建深度学习环境tensorflow-gpu+keras,把GPU调用起来
阅读量:3724 次
发布时间:2019-05-22

本文共 2099 字,大约阅读时间需要 6 分钟。

目录


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 确认显卡适合使用

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

1.2 下载显卡相关安装程序

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

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

1.2.1 显卡驱动

第一、先到更新一下显卡驱动。同时可以确认一下,显卡驱动的版本是否符合以下表格。

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

1.2.2 CUDA Toolkit

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

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

1.2.3 cuDNN

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

 

2 安装步骤

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

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

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

3 使用pip安装必要的库

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

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

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

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

 

[global]trusted-host=pypi.douban.comindex-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 tfhello = tf.constant('Hello, TensorFlow!')sess = tf.Session()print(sess.run(hello))

例子2.

执行里面的代码。

原先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”。需要参考:

代码上方增加以下内容:

import tensorflow as tffrom keras import backend as Kconfig = tf.ConfigProto()config.gpu_options.allow_growth=Truesess = tf.Session(config=config)K.set_session(sess)

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

 

 

 

 

 

你可能感兴趣的文章
2020-11-17 Vue-05事件监听
查看>>
2020-11-17 Vue-06条件判断
查看>>
2020-11-18L 闭包&&1365. 有多少小于当前数字的数字
查看>>
2020-11-18 Vue-07循环遍历
查看>>
2020-11-19L && 1217玩筹码
查看>>
2020-11-20L && prototype与constructor && 26数组去重 && 35 搜索插入位置
查看>>
2020-11-21 Vue08-购物车案例 && filter,map,reduce
查看>>
2020-11-21 构造函数 && 1480. 一维数组的动态和
查看>>
2020-11-21 Vue09-v-model
查看>>
2020-11-22L && 999. 可以被一步捕获的棋子数
查看>>
2020-11-22 Vue-10组件化开发(1)
查看>>
2020-11-23L && 1346. 检查整数及其两倍数是否存在
查看>>
2020-11-24L 非数字转化为数字&& 剑指 Offer 53 - II. 0~n-1中缺失的数字
查看>>
2020-11-25L 数组创建方法&&1200最小绝对差
查看>>
2020-11-25 Vue-10组件化开发(2)
查看>>
2020-11-26L JS注释方式 && 1470. 重新排列数组 && 888. 公平的糖果交换
查看>>
2020-11-27L 继承的圣杯模型&& 268. 丢失的数字
查看>>
2020-11-28L before initialization && 985. 查询后的偶数和
查看>>
2020-11-29L && 1337. 方阵中战斗力最弱的 K 行
查看>>
2020-11-30L && 数组遍历方式&&17.04消失的数字
查看>>