在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折騰慘了的我,此刻唯有這幅圖能表達我的心情!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM