Windows 64位下安装TensorFlow

2021-10-19 16:20:47 浏览数 (1)

之前 写过一篇在 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 的解决办法。

安装前准备

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

  1. 在 这里 确认你的显卡支持 CUDA。
  2. 确保你的Python版本是3.5 64位。
  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,这是 Google 官方推荐的。可以去各自官网下载,我已经下载好打成一个压缩包放到了百度云,大家可以从 这里 下载,密码 5aoc。


安装TensorFlow

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

代码语言:javascript复制
# GPU版本 
代码语言:javascript复制
pip3 install --upgrade tensorflow-gpu
代码语言:javascript复制
# or 
pip install tensorflow-gpu
代码语言:javascript复制
# CPU版本
pip3 install--upgrade tensorflow 
代码语言:javascript复制
# or 
pip install tensorflow

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

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


安装CUDA 8.0

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

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

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


安装cuDNN 5.1

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

比如说我的是:

Path环境变量:

按照官方的安装步骤实际上这里已经完成了,但是经过我的安装发现,这样如果你 import tensorflow 的话它还是找不到cuDNN的文件,也就是说下面紫色框中那一行是失败的:

然后发现 GitHub 上果然有人提交了一个一样的 issue,大家可以在这里看下,然后是这么解决这个问题的:将下面这些文件复制到相应位置,

  1. C:cudabincudnn64_5.dll —> C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0bin
  2. C:cudaincludecudnn.h —> C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0include
  3. C:cudalibx64cudnn.lib —> C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0libx64

除此之外,还有一个办法就是将C:cudabin 也加进Path 环境变量里,经过测试这样也是可行的。

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

然后再次import tensorflow 应该就成功了。


测试

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

代码语言:javascript复制
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)

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

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

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


安装可能出现的问题

Cannot remove entries from nonexistent file

如果在安装 TensorFlow 的时候出现类似 Cannot remove entries from nonexistent file c:userslianaconda3libsite-packageseasy-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


END

0 人点赞