WIN10安装TENSORFLOW(GPU版本)详解(超详细,从零开始)

WIN10安装TENSORFLOW(GPU版本)详解(超详细,从零开始)

更新日期 2020年1月2日

更新内容:

添加CUDDN的另一种安装方法。


我安装TENSORFLOW的时候走了很多弯路,入了很多坑,所以特此写下攻略希望能帮助到更多小白。流程如如下。

安装前:请先安装ANACONDA,对于WINDOWS来说还是用ANACONDA来安装比较方便一些。安装好ANACONDA后,要添加环境:

接下来开始安装TENSORFLOW。

第一步

确定你的安装类型:1)支持GPU类型,还是2)CPU类型

【一般如果做深度学习,最好安装GPU类型,因为运算速度更快】


第二步

如果是CPU类型,按照官网的说法一步一步来就行了。

如果是GPU类型,首先需要查看自己电脑的GPU型号,步骤如下。

然后用谷歌搜索“你的GPU型号+SPECIFICATION”,在官网查它是否支持CUDA


第三步安装CUDA

重要的事情说三遍:
请看清楚你需要的TENSORFLOW型号,以及它需要的环境!

请看清楚你需要的TENSORFLOW型号,以及它需要的环境!

请看清楚你需要的TENSORFLOW型号,以及它需要的环境!

有人问在哪里看型号,这个在TENSORFLOW的官网上可以查到的,稍微动动手就能找到了。如下图所示

如果你是需要跑某一个特定程序,那么它可能在特定的TENSORFLOW版本下才运行良好。而每一个版本对应的所需环境都不一样。一定要严格按照规定来安装。

以TENSORFLOW1.0来说,你需要安装CUDA® 工具包 9.0和cuDNN v7.0。

====更新内容(2020年1月2日)=====

我最近一次安装,安装了tensorflow_gpu-1.14.0, 以这个为标准,我搭配了python 3.6, cuDNN7.4, 和CUDA10.0, 注意,在tensorflow官网上都不会写清楚CUDA版本的小数点位。我在网上看了一下别人的答案,说是tensorflow_gpu-1.14.0和CUDA10.0最匹配,安装10.1或者10.2可能有不兼容的风险。

==========================

鉴于有太多伸手党问我版本查询的链接,我就贴在这里吧~

tensorflow.org/install/

【下面是坑】

以2018年5月20日为基准,此时你登录CUDA官网直接下载的时候,首页默认下载下来的是CUDA 9.2, 这样当你全部安装完的时候会发现TENSORFLOW1.0跟他不兼容。所以一定要下载9.0版本。这个版本需要你自己单独点到CUDA Toolkit Archive里去找出来。

安装好后,打开anaconda的terminal输入

nvcc -V

进行测试,如果显示如下,证明你安装成功了。


第四步安装cuDNN

去官网下载CUDNN 7.0,同前,注意型号。下载CUDNN需要去官网注册一个什么东西,总之需要注意版本就好。【我下载的是CUDNN7.0.5, 只要在7.x.x 版本范围内都可以】,下载下来的CUDNN是一个压缩包,解压以后,把以下内容添加到环境里面去。

添加环境


接着是CUDNN的安装:

首先在命令窗口进入你安装CUDNN的那个文件夹,进入之后,开启bash模式(win10自带的bash,直接输入bash就行了,如果bash出问题,那可以再windows store里面下载一个ubuntu for windows,当然这里也有别的cudnn的安装方法,这里我只是写了一个我个人的喜好方式。)

然后输入

cat include/cudnn.h | grep CUDNN_MAJOR -A 2

如果显示如下图就说明安装成功

检查完输入exit退出bash模式

====更新内容(2020年1月2日)===

以下是另一种安装方法,适用于无法成功安装ubuntu for windows,或者公司电脑不给windows store开放权限的。

下载CUDNN后,复制粘贴cuDNN里面的下面三个文件到CUDA的相应同名文件

  • cudnn\cuda\bin => CUDA\v10.0\bin
  • cudnn\cuda\include => CUDA\v10.0\include
  • cudnn\lib\x64 => CUDA\v10.0\lib\x64

下图是一个示意图,详情请见CSDN的这篇帖子。

第五步

接下来开始用ANACONDA安装TENSORFLOW,

1)在ANACONDA里创建名为TENSORFLOW的环境(你可以叫他任何名字,这里我叫这个环境为TENSORFLOW。

conda create -n tensorflow pip python=3.6

这里pip python=3.6的意思是在名为tensorflow的环境里搭建版本是3.6的python。

2)发出以下命令以激活 conda 环境:

activate tensorflow


3)发出相关命令以在 conda 环境中安装 TensorFlow。请输入以下命令:

(tensorflow)C:> pip install --ignore-installed --upgrade tensorflow-gpu

假如你想安装某个特定版本的tensorflow,可以输入如下命令,根据自己的喜好,替代那个1.8.0即可:

pip install --ignore-installed --upgrade tensorflow_gpu==1.8.0

4)测试是否安装成功

在ANACONDA窗口的tensorflow的环境中,跑一个test.py,看是否能运行成功。

如下图,得到了“Hello World”证明一切安装顺利。

test.py的内容如下

import tensorflow as tf
# Create TensorFlow object called tensor
hello_constant = tf.constant('Hello World!')

with tf.Session() as sess:
    # Run the tf.constant operation in the session
    output = sess.run(hello_constant)
    print(output.decode())# bytestring decode to string.

以上就是全部安装内容啦!!!撒花。


------2018年5月23日更新------

经知友提示,上述test.py代码只是检测了tensorflow是否安装成功。

如果想要检测tensorflow的确用gpu来做运算了,请用以下脚本测试

import tensorflow as tf
# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))

测试结果如下图

图中

device:GPU:0

的意思就是说该运算用到了GPU。

如果想手动声明让电脑用CPU运算,请参考官方文档


以下是一些安装过程中常见的导致安装失败的问题:

  1. 在运行测试脚本的时候显示一下报错:
AttributeError: module 'tensorflow' has no attribute 'constant'

有可能是你把测试文件命名为了tenforflow.py,导致import 的时候import成了这个脚本,因此需要把tensorflow.py随便改成别的名字,比如test.py。

2.当你需要删除tensorflow package的时候,如果安装的时候是用pip安装的,那么删除的时候也要用pip。 同理,用conda安装的要用conda指令来删除。如下图,tensorflow-gpu,显示是用pip安装的(请见前面第五步有讲到安装过程,官网推荐是用pip安装。)

3.为啥我全部安装正确也测试TENSORFLOW安装成功(运行上述test.py成功),但是测试GPU的时候失败,显示一直是CPU在运行?

这可能是之前你用CONDA安装过CPU版本的TENSORFLOW,或者ANACONDA自带TENSORFLOW造成冲突。你需要删除原有的TENSORFLOW重新安装即可。用CONDA指令或者PIP指令删除然后重新安装就可以了。


4. 在安装完ANACONDA后,使用jupyter notebook的时候,有可能会出现这样的报错

ImportError: DLL load failed: 找不到指定的模块。

这个时候只要把如下的额外两个环境变量添加以后,就可以正常在命令窗口通过输入jupyter notebook来启动了。

编辑于 2020-03-27 05:04