TensorFlow安装(Windows下GPU版本)

实际上,安装windows环境下的TensorFlow并不是太麻烦,主要问题在于第一次不知道版本兼容性问题。像我这种强迫症安装软件总是想装最新版的人,就容易掉入坑中,导致CUDA,TensorFlow,python,cudnn版本的不兼容。


接下来,进入正题,安装一共需要三个步骤。在这之前先说一下作者的环境。

系统:WIN10
CUDA: 9.2
TensorFlow:1.11(发文时最新版本)
GPU:1060

PS:在这之前,先说一下版本匹配方式,因为TensorFlow为主体软件,因此:
  1,在 GitHub TensorFlow release里面找到最新发布的版本。

GitHub release

  2,记下文中画圈的cuDNN版本,到Nvidia官网找到cuDNN相应版本。我下载的是如上图圈中所示的7.2。
cuDNN archive

  3,上图可以看到对应的CUDA版本为9.2,同样在Nvdia官网CUDA archive下找到对应版本下载即可。
CUDA


安装步骤

一,安装VS

(一定确保先于CUDA安装)
由于之后安装CUDA的时候会去找VS的安装路径生成相应的CUDA文件夹,因此务必确保VS已经安装成功后再装CUDA。
  VS应该是13 15 17版本都可以,作者使用的是15,网上说稍微稳定一些,17的话可能会遇到奇怪的问题。(强迫症忍住了)其中VS的组件只需要安装C++相关即可。

二,安装CUDA

这一步没有什么特别的,下载好相应的CUDA版本,只需要无脑下一步即可。但是要注意的是,安装好后应该把以下文件夹添加到系统path中。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\libnvvp
系统路径

安装完成之后测试安装结果:

(1),打开命令提示符,输入:nvcc  -V
CMD

(2),利用VS2015编译测试文件

打开C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.2,找到对应版本的sln文件打开,选择Release 和X64,右键1_Utilities,点击Build即可。编译成功后消息窗口栏会显示5个项目编译成功。
VS编译测试

至此,可以在cmd中切换到路径bin\win64\Release下,然后运行bandwidthTest和deviceQueryDrv,可以看到运行结果,不在赘述。

三,添加cuDNN

将下载好的cuDNN解压缩,复制内容到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2路径下,直接覆盖即可。
解压后的cuDNN
三,安装TensorFlow

作者主要采用在线安装的方式。
(1),安装anaconda。这里也不在赘述安装方式,主要注意需要下载python3.6。

(2),创建Tensorflow环境。
anaconda环境

(3),创建好环境后在Anaconda prompt中输入activate Tensorflow激活环境。


activate Tensorflow

(4),使用pip install tensorflow-gpu安装tensorflow(不输入具体版本默认安装最新release的版本,即1.11),显示如下。整个下载安装过程大概持续10多分钟。
pip安装

(5),安装anaconda环境的插件和编辑器。此操作在anaconda navigator页面点击操作即可。可以看到,安装完成后会多一个Tensorflow的打开方式。
spyder和jupyter

整个安装过程到此就结束了。可以打开spyder测试一下代码。如果不报错就证明没问题了。

import tensorflow as tf 
with tf.device('/cpu:0'):
    a = tf.constant([1.0,2.0,3.0],shape=[3],name='a')
    b = tf.constant([1.0,2.0,3.0],shape=[3],name='b')
with tf.device('/gpu:1'):
    c = a+b  
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容