更新日期 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可能有不兼容的风险。
==========================
鉴于有太多伸手党问我版本查询的链接,我就贴在这里吧~
【下面是坑】
以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运算,请参考官方文档https://www.tensorflow.org/programmers_guide/using_gpuwww.tensorflow.org
以下是一些安装过程中常见的导致安装失败的问题:在运行测试脚本的时候显示一下报错:
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来启动了。