Win10+Tensorflow-gpu1.13.1+cuda10.1+cudnn7.5疯狂踩坑记

写在前面?

ATP曾经,曾经,曾经,拥有过一台装好了tensorflow-gpu的电脑。当初的ATP使用的仍是tensorflow1.7.1,还在煞笔兮兮地用tf.matmul手写卷积神经网络。python

后来,ATP运行某代码时出了问题,告诉ATP它用的tensorflow版本过低了。那么ATP显然须要升级一下。git

听说升级tensorflow须要同时升级cuda和cudnn,那么ATP就把旧的卸了。github

而后,它装不上新的了。windows

在ATP用CPU训练了若干模型后,ATP在一个不想学习的下午又打开了安装教程。在安装了一个下午之后ATP陷入了自闭,而后它让npy陪它去食堂吃了两串烤面筋和四串烤鱿鱼,而后晚上回来又装,而后装上了,彷佛是成功的装上了。网络

为了防止其余有相似境遇的程序猿陷入像ATP同样不得不在晚上摄入额外热量的境地,ATP决定把它的坑罗列出来供你们参考。学习

毕竟这类踩坑博文虽然网上有不少,但老是少正好适合本身的那一篇,就像ATP的零食箱子里老是少一件零食同样。spa

如下内容假设你已经安装了Anaconda而且明白它的基本使用。不然能够去百度一下,这一部分实际上都大同小异。code

先把旧的卸了

若是你的电脑纯洁得像一张白纸那么资瓷忽略这一部分。blog

实际上主要是要卸掉旧的cuda。像这样打开开始菜单里的设置:排序

找到“应用”,点进去,而后在列表上方的下拉菜单里选择按安装日期排序,像这样:

而后能够发现里面有一堆带着cuda这四个字母的东西,把它们全卸了。换句话说,假设你的旧版本是9.2,那么就把名字里带着9.2的全卸了。

别的东西不必动,也最好别动。有些人可能为了图省事把安装日期是当天的东西全给卸了,但cuda的安装程序可能会对之前就有的一些驱动进行更改。ATP有一次失败的时候就一口气把全部全卸了,包括一个叫GeForce的东西,而后它打游戏的时候发现它的游戏帧数从70帧每秒掉到了15帧每秒,吓得ATP赶忙从新安装了显卡驱动,结果塞翁失马把游戏帧数提到了90帧每秒。

安装cuda

首先要肯定你能够安装哪一个版本的cuda。查询方法是打开控制面板(运行+control),打开“硬件和声音”,找到一个叫“NVIDIA控制面板”的东西。

若是你的这个东西点不开,那可能须要从新装一遍显卡驱动。ATP的就是重装了GeForce之后才能点开的。

打开之后是下图这样:

而后打开帮助->系统信息,在对话框里的小标签里点“组件”。有一个叫“NVCUDA.DLL”的东西,后面跟着一串版本号,大概意思就是你的显卡能支持哪一个版本的cuda。亲测版本低了能够,高了不行。以下图:

而后能够查一下你想安装的cuda版本对应哪一个版本的tensorflow和cudnn。这个能够很方便地百度到。

反正总之注意必定要按照对应关系安装!要否则会乱七八糟的。

ATP打算装的是tensorflow1.13,对应cuda10.1和cudnn7.5。

从这个地方下载cuda:https://developer.nvidia.com/cuda-downloads

按照你本身的系统一步步选,最后选exe(local)便可。下载完了双击exe,选择“精简”安装就能够了,不须要自定义什么东西。

安装cudnn

从这个地方下载cudnn:https://developer.nvidia.com/rdp/cudnn-download

它须要登陆,但不须要特别去注册一个帐号,用QQ均可以登陆。

按照你的cuda版本下载对应的cudnn。必定要下载对应的!否则系统乱了都不知道咋乱的。。

它第一页只有最新版本cudnn,若是要下载旧一点的版本能够点下面的Archived Cudnn Releases,ATP下载的是7.5.0 for cuda10.1。

下载下来之后是个压缩包。解压开里面有bin、lib和include三个文件夹和一个文本文件。

接下来是重点!ATP在这个地方卡了很久。

打开目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1,它应该长这样:

把刚才那三个文件夹和一个文本文件直接复制到这个地方。实际上就是让cudnn的bin文件夹里的东西在这个cuda的bin文件夹里,lib文件夹里的东西在cuda的lib文件夹里,这样。

实际上,若是你打开cudnn的bin文件夹, 能够发现只有一个文件叫作cudnn64_7.dll。刚才作的事情等价于把这个文件复制粘贴到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin目录下。

有时候安装错误,tensorflow会报错,意思是缺乏“cudnn64_7.dll”这个文件,问题就在于可能你没有让这个dll文件呆在cuda目录的bin文件夹里面。

这个也弄完了之后就okk了!就能够用Anaconda新建一个环境,而后pip安装tensorflow-gpu了。

注意在新建环境的时候要确保python是3.7,pip是19.1。而后pip install tensorflow-gpu,它就会自动装上最新的1.13版本了。

若是安装完了之后仍是有奇怪的问题,也能够试试这个安装源: https://github.com/fo40225/tensorflow-windows-wheel

一些问题

若是import tensorflow的时候报一个叫作“ImportError”的错,颇有多是cuda的版本跟显卡目前的支持不对应。

若是想把显卡弄得支持最高版本的cuda,ATP的方式是从新下载显卡驱动。由于ATP一开始的显卡只支持到9.2,但从新下了驱动之后忽然神奇地变成了支持10.2。

顺便,ATP的显卡是1050Ti。

另外,要查看目前的tensorflow是支持CPU仍是GPU,能够输入这一段代码:

import os
from tensorflow.python.client import device_lib
os.environ["TF_CPP_MIN_LOG_LEVEL"]="99"

if __name__=="__main__":
    print(device_lib.list_local_devices())

而后,没了。ATP要是哪天再把它如今的版本卸了而后遇到了新的坑再来补。

反正关键问题就是找好对应的cuda版本,而后把cudnn放到正确的地方就没问题了。

相关文章
相关标签/搜索