在Windows 10 + Python 3.6.5 中用 pip 安装最新版 TensorFlow v1.8 for GPU

声明

什么cuDNN之类的安装,应该是毫无难度的,按照官网的教程来即可,除非。。。像我一样踩了狗屎运。咳咳,这些问题不是本文的关键。

本文的关键是解决pip安装tensorflow gpu版的问题。

安装环境

操作系统:64位的Windows 10 的1709版,

显卡:GTX 1080Ti

Python:3.6.5,64位

准废话

在网上查了很多资料,包括tensorflow官网的安装指南,然而总是报错:

Could not find a version that satisfies the requirement tensorflow-gpu (from versions: )
No matching distribution found for tensorflow-gpu

实在是想不明白,官网明明写着windows版支持python 3.6.x。。。然后我切换到3.5.x,竟然还是不行。。。Anaconda的方法也跪了。。。

 

官网还给出了版本要求不满足的问题的解决方法参考资料:

然而并没有什么卵用。。。所有的方法都试过了。只是给出的StackOverflow相关讨论里有种解决方法让我比较在意的:

官网要求用pip3来安装,但是不记得是在哪里看到的,貌似在没有python 2.x与python 3.x共存的情况下,pip3和pip似乎是一样的。

出于死马当活马医的念头,就试了一下改用pip安装,神了。。。玄学,竟然成功了一半!吐血。。。

再试试后面用在线的whl文件安装方式。。。竟然也是成功了一半。。。

但是呀,但是,这个版本也太低了吧。本着喜新厌旧的心态,我又在StackOverflow上找到了一个链接:

https://storage.googleapis.com/tensorflow

这个链接貌似有维护着类似这个链接的whl文件,

$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl

打开之后搜了一下,没有发现有对应的windows的gpu版本。。。

怒了。。。直接去pypi官方搜tensorflow-gpu的包,竟然有找到。。。谷歌和windows什么怨什么仇。。。

 

 快告诉我这是什么?!!!

既然是用Windows 10,而且是64位的系统和64位的 Python 3.6.5,那么自然应该选择上图中红色的版本:

tensorflow_gpu-1.8.0-cp36-cp36m-win_amd64.whl

至于为什么选择这个whl包,和它的命名规范有关,请参考:《Python Wheel 包命名规则和 ABI 兼容》https://segmentfault.com/a/1190000007591736 。

好,表演开始:

正片

第一步,安装tensorflow-gpu

额。。。tensorboard。。。怎么又是成功了一半。。。

这里报错的意思是找不到满足要求的 tensorboard 版本,要求小于1.9.0,大于等于1.8.0版本。

第二步,安装tensorboard

试试pip直接安装:

果然还是不行。。。

再试试whl大法:

这是什么?快告诉我!!!tensorboard 1.8.0,这不是有满足要求的包吗?虽然我用的是清华开源镜像,但是经过检查,镜像里也有这个包,怎么就不满足版本要求了?

点进去之后选择相应版本的whl,复制其链接:

pip3 install <复制的链接>

哎哟,还是可以的嘛

第三步,继续安装tensorflow-gpu

和第一步相同,用whl方式继续安装tensorflow-gpu,注意这一步不要用什么--ignore-installed的参数。。。

看来是成了?

注意这里假设你已经把CUDA / cuDNN之类的装好了。

来一小段代码试试:

 

import tensorflow as tf
print(tf.__version__)
sess = tf.Session()
a = tf.constant([1.0, 2.0])
b = tf.constant([3.0, 4.0])
c = a * b
print(sess.run(c))
sess.close()

 

如无问题,应该会打印出类似下面的结果:

注意:

  • tf.Session()调用之后可能需要等一段比较长的时间才会有反应。
  • 如果在import tensorflow阶段就报错了,说明还没正常安装或者配置好。

怎么样?

不过这个版本很新,哈哈哈,不知道会不会有什么问题,之前在StackOverflow上看到的https://storage.googleapis.com/tensorflow 上给出的 windows gpu 版本是1.2版本的(说不定是他们写错了?),可是不知道为什么,后来windows gpu版本在链接中给出的xml文件里完全找不到了,只剩cpu版,可能是有坑还是什么的,使用的时候还请各位要多加小心,虽然我知道你们都是用linux的,哈哈哈,我的linux滚动更新挂了,莓办法。

 

关于CUDA® Toolkit 9.0 安装的坑

这坑比浪费了我很多时间,如果你用的是 Visual Studio 2017 ,恭喜你,很有可能安装失败,CUDA安装包自带的 Visual Studio Integration 组件每次安装都是失败的,导致整个CUDA安装都被回滚。

官网的论坛上有相关讨论 https://devtalk.nvidia.com/default/topic/1032284/cuda-setup-and-installation/cuda-visual-studio-integration-installation-failed/

只能在安装时选择自定义,然后取消选中Visual Studio Integration 组件

还有就是如果之前已经装了更加新版的Nvidia显卡驱动或者CUDA或者Nsight时,卸了吧。Nsight也是个坑比,在Win10没法直接卸载,官网的卸载说明也只有一句话,叫你去控制面板自己卸载。。。但是那样是不行的,至少我这有个血淋淋的案例,你只能先卸载VS2017,否则Nsight卸载不掉,甚至你想卸载VS2017都会卡住,不知道有没有更好的方法。如果卸载VS2017卡住了,可以用VS自带的特殊卸载工具 InstallCleanup.exe 来卸载,而且更快。详细说明见:https://docs.microsoft.com/en-us/visualstudio/install/remove-visual-studio

被Nsight折腾惨了的我,此刻唯有这幅图能表达我的心情!

posted @ 2018-05-30 04:19  自来喵的野  阅读(7669)  评论(7编辑  收藏  举报