【TensorFlow】Windows10 64 位下安装 TensorFlow - 官方原生支持-(转)

之前 写过一篇在 ubuntu 下安装 TensorFlow 的教程,那个时候 TensorFlow 官方还不支持 Windows 系统,虽然可以通过其他方法安装,但是终究不是原生的,而且安装过程繁琐易错。好消息是,Google官方在11月29号的开发者博客中宣布新的版本(0.12)将 增加对Windows的支持,我11月30号知道的,立马就安装试了试,安装过程非常简单,不过也有一些需要手动调整。

这里写图片描述


更新

这里我会列出对本文的更新。

  • 2017 年 3 月 1 日:cuDNN 版本从 5.0 升级到 5.1 版本,更新 cuda 和 cudnn 下载地址。
  • 2017 年 3 月 20 日:标记 安装前准备 中的第五条 确保你安装了 VS2015 或者 2013 或者 2010。 为存疑。这是我之前在 TensorFlow 官网看到的,但是现在去翻了翻找不到了。如果有同学没有安装 VS 就把 TensorFlow 安装成功了的话,请在下方评论区说明下,到时候我会将这个要求标记为删除。谢谢。
  • 2017 年 3 月 26 日:更新 TensorFlow 安装命令。
  • 2017 年 4 月 18 日:
    • 安装前准备 第五条标记为删除,经过我再次试验发现不需要 VS 的支持。
    • 增加问题 Cannot remove entries from nonexistent file 的解决办法。
  • 2017 年 7 月 20 日:增加问题 ImportError: DLL load failed: 找不到指定的模块。ImportError: No module named '_pywrap_tensorflow_internal'ImportError: No module named 'tensorflow.python.pywrap_tensorflow_internal 的时候` 的解决办法。
  • 2017 年 7 月 31日:更新关于 Python 版本的说明,TensorFlow 从 1.2 开始在 Windows 上支持 Python 3.6。感谢评论区 @Vince_Ace 提供的信息。
  • 2017 年 8 月 20 日:TensorFlow 1.3 发布,更新 cuDNN 版本说明。感谢评论区 @myseth1023 提供的信息。
  • 2017 年 8 月 21 日:删除 安装cuDNN 中容易误导人的部分(关于添加环境变量)。

安装前准备

TensorFlow 有两个版本:CPU 版本和 GPU 版本。GPU 版本需要 CUDAcuDNN 的支持,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.0cuDNN 5.1(由于 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 #622osx 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 解释器即可。


END

                                <link rel="stylesheet" href="http://csdnimg.cn/release/phoenix/production/markdown_views-0dc44d5592.css">
                                </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值