TensorFlow GPU 版本安装个人总结:Win10 + Python3.5 + CUDA 9.0.176 + cudnn v7.5.0.56 + TensorFlow 1.12.0

TensorFlow GPU 版本安装个人总结:Python3.5 + CUDA 9.0.176 + cudnn v7.5.0.56 + TensorFlow 1.12.0

接触机器学习有一段时间了,前一段配置tensorflow的GPU版本的时候被网上的野鸡教程坑的欲哭无泪,千辛万苦配置成功以后,捋一捋思路发现其实也没那么难。

废话少说,直入正题。

0.配置之前你要了解的

(1)教程默认你已经安装好anaconda了
(2)理解“环境”的概念。配置基于Python3.5环境, 但小白的环境往往是系统默认的base,没准里面的默认Python版本是3.7,那配错了你就查去吧
(3)安装CUDA最繁琐的地方在于,Python、tensorflow、CUDA、cudnn四者版本必须严格对应,错一步那就查去吧,配十天半个月的大有人在
(4)切记,配置CUDA并不存在高版本兼容低版本这一说法

1.配置Python3.5环境

(1)进入anaconda界面——左侧单击environment——发现环境里只有一个base(root),如下图。这个base环境说白了就是系统默认给你创建的一个Python环境,当然默认安装的也是最高版本的Python,这也是为什么保险起见需要大家新建一个环境。
PS:底下的Python3.5是我已经配置好的环境,默认它现在不存在就好哈哈
在这里插入图片描述
(2)下方点击Create,来创建一个新环境,如下图,name是环境名称,自己随意命名(有的教程这一步直接说命名成tensorflow,个人感觉不是很好),底下Python版本下拉选择3.5,点击create完成环境创建
PS:这一步需要等个几分钟,因为创建环境需要下载一些基础包
在这里插入图片描述
(3)把这一栏切换成installed,查看已经安装好的各种支持包,如果有一大堆你不认识的包被显示出来了,那恭喜你环境配置成功
PS:如果在这一步报错,检查是不是之前你以相同的环境名称create过相同的环境(如果你现在是第二遍或者第三遍配置)。找到anaconda安装的根目录,进到envs文件夹下,如果你看到了Python3.5的文件夹果断删除它就好
在这里插入图片描述

2.安装CUDA9.0

(1)下载对应版本的CUDA
CUDA安装最为繁琐的地方在于,他要求Python、CUDA、cudnn、tensorflow版本四位一体,严格对应。具体的对照表如下:
在这里插入图片描述
说白了,只要你找到一个能跑起来的组合就行。(但问题就在于找这些组合的时候你可能会踩一堆坑哈哈哈哈)我这里采用的是Win10环境下, Python3.5 + CUDA 9.0.176 + cudnn v7.5.0.56 + TensorFlow 1.12.0组合。

CUDA9.0的安装包地址在https://developer.nvidia.com/cuda-toolkit-archive自寻
cudnn7安装包地址:https://developer.nvidia.com/cudnn(需要注册英伟达账号,嫌麻烦直接拿文章末尾的资源)

如果下载过程中速度过慢或者直接下载失败的话,解决方案也很简单:下载的时候出来两个选项,本地安装包和在线安装包,选择在线安装即可。(他俩的区别就是本地安装包会直接把安装包整体下载到你电脑上,大小1GB左右,在线安装包可能只有十几MB,下载很快就完成了,二者后续安装过程也基本一样)
在这里插入图片描述

(2)临时解压:双击下载下来的文件,选择临时解压路径

这一步特别重要,切记不要把临时解压路径和正式安装路径全都放在一个文件夹里,因为正式安装完毕后临时文件夹整体会自动被删除,你都放一起等于白安一遍。

默认是系统盘的路径,我这里改成D盘(系统盘空间宝贵哈哈哈哈),新建文件夹temp
在这里插入图片描述

(3)正式安装:

勾选同意
在这里插入图片描述

选择自定义安装
在这里插入图片描述

全部勾选(有的教程说只勾选第一个就行,保险起见这里先勾上,大家以后可以自行尝试)
在这里插入图片描述

选择安装路径:默认还是系统盘,我这里仍然改成D盘,新建文件夹CUDA9.0
这里一定要区分开,不要放到刚才的临时文件夹temp里!
在这里插入图片描述

正在联网下载中,点杯奶茶等着吧哈哈哈

PS:如果是本地安装的话这一步就直接开始安装了
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200302120601630.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTkxODQ1Nw==,size_16,color_FFFFFF,t_70
之后基本就没什么问题了,如果提示VS2010有问题也不用管。

3.安装cudnn7

cudnn相当于CUDA的一个补丁,官网需要注册才能下载,如果嫌麻烦直接到文末找我上传的资源就行

(1)解压一下cudnn压缩包,发现里面有几个文件夹。人家这么命名的意思是告诉你,对应文件夹下的内容应该放到CUDA安装目录的同名文件夹下。(这点很多教程写的都不是很好,以下我会演示一下正确的做法)
在这里插入图片描述
(2)放置对应文件

举个栗子:bin点开以后发现有这么个玩意
在这里插入图片描述
打开CUDA 9.0安装目录下的bin文件夹,把这个给扔进去进行了
在这里插入图片描述

同理:include点开只有这一个头文件
在这里插入图片描述
找到CUDA9.0安装目录底下的include文件夹,扔到里面
在这里插入图片描述

lib也是一样,只不过下面有个x64文件夹,继续点开
在这里插入图片描述
然后进入到CUDA9.0安装目录下对应的./lib/x64下面,扔进去,大功告成
在这里插入图片描述

4.配置环境变量

这一步网上的教程也是说的鱼龙混杂,我在各个教程之间取了个并集,测试可行,直接上我的图

大家直接在系统变量里面改就行,不用管用户变量。

绿圈里面的两个变量是你安装好CUDA9.0以后自动建立的,其余需要自己手动添加。(我这里演示的是我自己装那一次配置好的环境变量,当时文件夹命名没加9.0,红字补上。这一步的变量值就是我们安装好的CUDA 9.0路径,每个人的可能都不同,以CUDA9.0文件路径为准)
在这里插入图片描述

改完这几个以后,进入到系统变量的PATH下,同理,环境变量值根据大家自己的CUDA9.0文件夹实际路径来写。
在这里插入图片描述

配置完这一步整个CUDA的安装就完毕了,下一步安装Tensorflow的GPU版本

5.安装tensorflow的GPU版本

(1)进入到anaconda prompt,默认是base环境
在这里插入图片描述
(2)输入activate Python3.5,激活刚刚配置好的Python3.5环境,以后所有的安装都在这个环境下进行
在这里插入图片描述
(3)直接pip install tensorflow-gpu==1.12.0,按理来说会慢慢下载,如果一次不成功多试两次,再不行改用指令conda install tensorflow-gpu==1.12.0,这里就不演示结果了,如果安装成功以后会出现提示。

PS:这一步切记不要把tensorflow CPU和GPU 放在同一个环境下安装,否则会报错。
在这里插入图片描述
(4)回到anaconda里, 点进去Python3.5环境,右上角框框设置为not installed,搜索Spyder进行安装(或者其他你喜欢的编译器,但切记要安装在Python3.5环境下),我这里已经安装过所以没有显示
在这里插入图片描述

PS:这一步也是很多新人容易跳的坑,安装完tensorflow觉得万事大吉直接从桌面找到Spyder点进去,一运行代码报错,其实是因为你点进去的Spyder是base环境下的,可能根本没安上tensorflow也可能你之前安的是CPU版本的。所以需要在Python3.5环境下单独安装一个Spyder,安装完成后在anaconda下能看到两个Spyder,点进去标着Python3.5的才是你GPU环境下可用的编译器,如下图所示
在这里插入图片描述

6.测试是否安装成功

#测试代码1
import tensorflow as tf
print(tf.test.is_built_with_cuda())

#测试代码2
import tensorflow as tf
tf.test.is_gpu_available()


#测试代码3
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

#测试代码4
import tensorflow as tf
a = tf.constant([1.,2.,3.,4.,5.,6.], shape=[2,3], name='a')
b = tf.constant([1.,2.,3.,4.,5.,6.], shape=[3,2], name='b')
c = tf.matmul(a,b)
with tf.Session(config = tf.ConfigProto(log_device_placement=True)) as sess:
    print(sess.run(c))

代码是从网上搜集到的几个不同版本的测试代码集合,任何一个跑通了就说明tensorflow的GPU版本彻底安装成功(一般4个代码应该是同时跑通,如果安装步骤有问题应该是四个代码全报错)

第一段代码检测CUDA安装是否成功,输出为:True 表示没问题

第二段代码检测GPU是否可用,输出为:True 表示没问题

第三段代码列出所有可用设备,输出应该如果有GPU就表示没毛病

第四段代码默认调取GPU运行,只要不报错能输出结果就没问题啦

发布了2 篇原创文章 · 获赞 1 · 访问量 31

猜你喜欢

转载自blog.csdn.net/weixin_41918457/article/details/104606009