Win10搭建TensorFlow(r1.5) CUDA9.0& cuDNN7

最近因为工作需要,要研究下TensorFlow,所以总结下我这两天在Windows平台上安装的经历。或许有人能用到。
首先说下,我安装的时候TensorFlow的最新版本是1.5,所以接下来说的都是这个版本的情况,这个非常非常重要,无论如何官网都是第一要参考的,其次才是别人的总结。

准备工作

打开官网:Getting Started With TensorFlow进入Install链接
按照上面说的,有两种方式来使用TensorFlow,一种是CPU模式,另一种是GPU模式。我也按照这两种模式说下我的做法。

  • CPU模式
    这个模式下按照官网介绍不自己编译的话直接安装预编译好的python接口不需要额外准备什么,只要把VPN的梯子放好,接下来翻墙下载就可以了。(现在已经放开了,不用翻墙了)
  • GPU模式
    这个模式需要预前下载几个软件:
    • VS2015(在目前1.5版本中不需要)
      这个软件在按照CUDA的时候会用到。如果已经安装了VS2012或者之后的版本也可以不用安装这个版本了,不过这个版本的好处是可以直接装社区版,是免费的。需要注意的是按照的时候记得选上C++的开发环境。“话说现在微软已经是开源社区代码量贡献第一名了,呵呵”

    • CUDA
      注意版本,TF官网给出的链接也就是NVIDIA现在默认下载的版本是9.1,这个版本不是pip安装时TF(r1.5)默认需要的版本,TF默认需要的版本是9.0的,所以如果现在还是需要9.0版本的那么请在这个链接下载https://developer.nvidia.com/cuda-90-download-archive(更新这段文字时是2018年1月29号,请确认你当下TF的所需版本,如果不幸搞错了,也没关系,卸了重新下载然后按照就可以了,卸载走控制面板就可以了,把NVIDIA相关的软件都卸载干净。)
      接下来的VS编译相关内容可以略过了,不需要编译。

      这个在Nvidia的网站上可以下载得到。然后进行安装,安装比较简单,不过最后如果想要运行下sample进行验证安装是否正确的话,还需要打开<u>C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0</u>下面的Samples_vs2015.sln对工程进行编译。记得编译的时候改下编译的模式,不用Debug改成Release。

      ~~编译CUDA的Samples~~

      编译完成后就可以在<u>C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\bin\win64\Release</u>下面命令行运行deviceQuery.exe了。

      另外TensorFlow官网提升说需要把CUDA的dll加入到path环境变量中,我这边装好后看了下,感觉都已经加好了,所以没有手动再加什么环境变量。

    • cuDNN
      前面个都装好,还剩下cuDNN了。这个不需要安装,直接下载后解压出来就可以。但是版本在当下r1.5版本的TF要求是cuDNN7.0版本,需要下载和CUDA9.0对应的版本,可是NVIDIA的官网在维护无法下载,所幸有网友在网上提供了:cuDNN下载: 链接: https://pan.baidu.com/s/1slG5s5n 密码: unv2
      。Tensor说不要和CUDA的dll放在一个目录下面,所以我把cuDNN放在了CUDA的平级目录下:<u>C:\Program Files\NVIDIA GPU Computing Toolkit\cuDNN</u>.然后在path中添加:C:\Program Files\NVIDIA GPU Computing Toolkit\cuDNN\cuda\bin

补充升级到TensorFlow r1.3版本的GPU模式安装的问题,在r1.2版本中使用的是cuDNN v5.1,在r1.3使用的是cuDNN v6 or v6.1,所以需要重新下载并替换掉之前的v5.1版本。然后还是下面的安装步骤就没问题了。不需要卸载,直接安装就是升级。*In particular, the cuDNN version must match exactly: TensorFlow will not load if it cannot find cuDNN64_6.dll. *

开始安装

  • 创建conda环境
conda create -n tensorflow python=3.6 anaconda

我在后面加了个anaconda,推荐大家也加上,这样np,pd,sklearn,scipy之类的包就都一起安装了。
之后activate到新的环境上继续下面的步骤

  • 安装CPU模式
pip install --ignore-installed --upgrade tensorflow 
  • 安装GPU模式
pip install --ignore-installed --upgrade tensorflow-gpu 

然后接下来就是import tensorflow,并print Hello TensorFlow!了

Pycharm环境

在Pycharm中使用TensorFlow也很简单。
首先是创建一个准备使用TensorFlow的Project,然后为其建立一个Interpreter:

Add local
选择Anaconda2\envs\tensorflow下的python.exe
搞定Interpreter

然后就可以运行Hello代码了。

import tensorflow as tf

hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()

print(sess.run(hello))
运行结果

可以发现有些告警,是因为我们使用的预编译库没有SSE等指令,这个可以给CPU加速1倍左右。不过需要我们重新编译生成库,不过因为Tensor非常不推荐在Windows做这个事情,所以想重新编译的话还是在Ubuntu上做吧,下个最新版的编译起来也不费劲。因为我主要是想单机做些简单实验,而且我使用的是GPU模式,所以就不在win10上折腾了。
至此简单的TensorFlow环境就搭建好了,接下来就可以开始学习Tensor、Graph、Node等等新的知识了。

推荐阅读更多精彩内容