安装前准备

TensorFlow 有两个版本:CPU 版本和 GPU 版本。GPU 版本需要 CUDA 和 cuDNN 的支持,CPU 版本不需要。如果你要安装 GPU 版本,请先确认你的显卡支持 CUDA。我安装的是 GPU 版本,采用pip 安装方式,所以就以 GPU 安装为例,CPU 版本只不过不需要安装 CUDA 和 cuDNN。

  1. 在 这里 确认你的显卡支持 CUDA。
  2. 确保你的 Python 版本是 3.5 64 位及以上。(TensorFlow 从 1.2 开始支持 Python 3.6,之前的官方是不支持的)
  3. 确保你有稳定的网络连接。
  4. 确保你的 pip 版本 >= 8.1。用 pip -V 查看当前 pip 版本,用 python -m pip install -U pip 升级pip 。
  5. 确保你安装了 VS2015 或者 2013 或者 2010。此条非必须,删除。

此外,建议安装 Anaconda,因为这个集成了很多科学计算所必需的库,能够避免很多依赖问题,安装教程可以参考 这里。

以上条件符合,那么恭喜你可以开始下载 CUDA 和 cuDNN 的安装包了,注意版本号分别是 CUDA 8.0 和 cuDNN 5.1(由于 TensorFlow 不同版本有变化,5.1 已不再适用新版本,此处请结合 安装cuDNN 说明),这是 Google 官方推荐的。可以去各自官网下载,我已经下载好打成一个压缩包放到了百度云,大家可以从 这里 下载,密码 5aoc。


安装TensorFlow

由于Google那帮人已经把 TensorFlow 打成了一个 pip 安装包,所以现在可以用正常安装包的方式安装 TensorFlow 了,就是进入命令行执行下面这一条简单的语句:

# GPU版本
pip3 install --upgrade tensorflow-gpu

# CPU版本
pip3 install --upgrade tensorflow

然后就开始安装了,速度视网速而定。

安装网之后你试着在 Python 中import tensorflow 会告诉你没有找到 CUDA 和 cuDNN,所以下一步就是安装这两个东西。


安装CUDA 8.0

这个也是很简单的,下载完我上面给的压缩包之后,解压,得到两个文件,那个 exe 文件就是 CUDA8 的安装程序,直接双击执行就可以了,就像安装正常的其他软件一样,安装过程屏幕可能会闪烁,不要紧,而且安装时间有点长。

安装完之后系统变量会自动为你添加上,这个不用管。

测试一下是否安装成功,命令行输入nvcc -V ,看到版本信息就表示安装成功了。

tensorflow gpu与cuda版本 tensorflow gpu版本cpu有什么区别_tensorflow


安装cuDNN

Google 于 2017 年 8 月 17 日左右发布了 TensorFlow 1.3,该版本不再支持 cuDNN 5,开始支持 cuDNN 6,并预计在 TensorFlow 1.4 支持 cuDNN 7,所以说当你使用 pip 安装最新版的时候,请使用 cuDNN 6,而不是我提供的 5.1,否则会出现Issues #2 的问题。

TensorFlow 1.3 中关于 cuDNN 的 发行说明:

All our prebuilt binaries have been built with cuDNN 6. We anticipate releasing TensorFlow 1.4 with cuDNN 7.

TensorFlow 1.2 中关于 cuDNN 的 发行说明:

TensorFlow 1.2 may be the last time we build with cuDNN 5.1. Starting with TensorFlow 1.3, we will try to build all our prebuilt binaries with cuDNN 6.0. While we will try to keep our source code compatible with cuDNN 5.1, it will be best effort.


其实这个是一个压缩包,解压放到任何一个目录下就行,然后把你放的那个目录添加到Path 环境变量里。

比如说我的是:

tensorflow gpu与cuda版本 tensorflow gpu版本cpu有什么区别_CUDA_02

Path环境变量:

tensorflow gpu与cuda版本 tensorflow gpu版本cpu有什么区别_CUDA_03

如果你已经安装了 cuDNN 5.0 ,那么升级 cuDNN 的方法可以参考 这里

然后 import tensorflow 应该就成功了。


测试

用一个简单的矩阵乘法测试一下,

import tensorflow as tf

a = tf.random_normal((100, 100))
b = tf.random_normal((100, 500))
c = tf.matmul(a, b)
sess = tf.InteractiveSession()
sess.run(c)
  • 1
  • 2

tensorflow gpu与cuda版本 tensorflow gpu版本cpu有什么区别_标签页_04

看不清的话可以右键在新标签页打开图片查看大图

可以看到已经识别出我的显卡了(不要吐槽我的渣显卡,穷屌丝一个)。

终于可以在Windows上和TensorFlow愉快的玩耍了~~~


Issues

#1Cannot remove entries from nonexistent file

如果在安装 TensorFlow 的时候出现类似 Cannot remove entries from nonexistent file c:\users\li\anaconda3\lib\site-packages\easy-install.pth 的错误,那么可以参考Cannot remove entries from nonexistent #622 和 osx 10.11 installation issues #135,里面说了好多种解决办法,我在这里介绍一种方法:在 pip3 install --upgrade tensorflow-gpu 之前先执行pip install --upgrade --ignore-installed setuptools 。

#2 ImportError: DLL load failed: 找不到指定的模块。 和ImportError: No module named '_pywrap_tensorflow_internal'

tensorflow gpu与cuda版本 tensorflow gpu版本cpu有什么区别_CUDA_05

右键在新标签页打开图片查看大图

tensorflow gpu与cuda版本 tensorflow gpu版本cpu有什么区别_标签页_06

右键在新标签页打开图片查看大图

tensorflow gpu与cuda版本 tensorflow gpu版本cpu有什么区别_tensorflow_07

右键在新标签页打开图片查看大图

如果在 import tensorflow 的时候这两个问题同时出现,那么很有可能是你的 cuda 和 cudnn 版本有问题,例如你的 cuda 版本是8.0.60,而正确的是 8.0.44,重新安装正确的版本(文章里提供的)就可以。参考 On Windows, running “import tensorflow” generates No module named “_pywrap_tensorflow” error 。感谢 @qq_27690673 提供的信息。

#3ImportError: No module named 'tensorflow.python.pywrap_tensorflow_internal'

tensorflow gpu与cuda版本 tensorflow gpu版本cpu有什么区别_tensorflow_08

右键在新标签页打开图片查看大图

如果在 import tensorflow 的时候出现此问题,那么你可能是在 tensorflow 的源码目录里进入了 python 解释器。离开该目录重新进入 python 解释器即可。


END