安装 TensorFlow (Windows10 64)

安装前准备

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

  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 。

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

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


安装TensorFlow

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

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

# CPU版本
pip3 install --upgrade tensorflow
  • 1
  • 2
  • 3
  • 4
  • 5

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

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


安装CUDA 8.0

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

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

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

这里写图片描述


安装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.


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

比如说我下载解压后放到了下图的 cuda 文件夹:

这里写图片描述

Path环境变量:

path

如果你已经安装了 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
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

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


Issues

#1 Cannot 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'

这里写图片描述 
右键在新标签页打开图片查看大图

这里写图片描述 
右键在新标签页打开图片查看大图

这里写图片描述 
右键在新标签页打开图片查看大图

如果在 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 提供的信息。

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

这里写图片描述 
右键在新标签页打开图片查看大图

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

猜你喜欢

转载自blog.csdn.net/qq_32841011/article/details/79058641