在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安装都被回滚。
只能在安装时选择自定义,然后取消选中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折腾惨了的我,此刻唯有这幅图能表达我的心情!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构