Windows10安裝TensorFlow-gpu

我的系統是Windows10專業版,顯卡是GTX1060。要安裝GPU版的TensorFlow,首先需要安裝CUDA,下載地址:https://developer.nvidia.com/cuda-toolkit-archive。我選擇的是CUDA Toolkit 9.0 (Sept 2017),選擇這個版本是因爲搜到的成功裝上的基本都是9.0的版本(如果您的顯卡芯片爲Pascal架構(NVIDIA GTX 1080,NVIDIA GTX 1070等),您只能在之後的配置中選擇CUDA 8.0 來自:keras-cn)。另外,TensorFlow和CUDA還有cuDNN的對應版本:https://www.tensorflow.org/install/source_windows。(這個後面需要下載cuDNN)
在這裏插入圖片描述
既然選擇了CUDA9.0,那麼TensorFlow的版本就在1.5.0-1.12.0之間選擇就行。

CUDA安裝步驟:
在這裏插入圖片描述
這個只是選擇臨時解壓的路徑,可以自己選擇一個目錄,也可以默認。目錄會在安裝完成之後自動刪除。

在這裏插入圖片描述
選擇自定義安裝:

在這裏插入圖片描述
需要安裝的組件如圖,下一步的安裝位置建議默認,如果不默認可能出現一些奇奇怪怪的問題。

安裝完成之後可以在CMD下運行C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite這個目錄下的bandwidthTest.exedeviceQuery.exe查看結果,正常的話會有一堆顯卡的信息顯示出來:
在這裏插入圖片描述
我執行這兩個程序的時候出現了錯誤,並沒有打印顯卡的信息, 不過忘了保存錯誤了(而且NVIDIA控制面板也打不開),最後直接把NVIDIA圖形驅動程序這個軟件卸載了,然後用驅動安裝軟件重新安裝就正常了。

接着下載cuDNN:https://developer.nvidia.com/rdp/cudnn-archive,這個有點麻煩需要登錄,我是直接使用QQ登錄然後填寫基本信息。另外,我下的版本:Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0。網頁訪問有點慢,但是下載的速度還是挺快的。

下載完成後直接解壓到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0對應目錄即可。我看好多人還添加了環境變量,應該是不需要的,CUDA安裝的時候已經添加了。

準備工作已經做完了,接下就可以直接安裝TensorFlow包了。建議使用python虛擬環境安裝,我使用的是conda。
conda create -n tf python==3.6 tf爲虛擬環境名稱,可任意
conda activate tf
pip install tensorflow_gpu==1.8.0 不一定選擇這個版本,如果是CUDA 9.0和cuDNN v7.0.5,正常來說1.5.0到1.12.0的版本都可以
pip install pillow 用於導入圖片
pip install matplotlib 畫圖
pip uninstall protobuf 可以先import tensorflow試一下,如果沒有出現錯誤可以不降級
pip install protobuf==3.4.0降級這個庫的原因是import tensorflow時出現 importError: DLL load failed: 找不到指定的程序。可以看到具體報錯的部分是protobuf這個庫。我試了一下 protobuf 3.4.0這個版本可以匹配TensorFlow1.8.0。如果你的還是不行,搜索一下protobuf和TensorFlow對應版本找找看。
pip uninstall numpy
pip uninstall numpy==1.16.0 降級的原因:FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecat

後面就可以缺少裝啥了,也可以根據提示升級一下pip。

如果想在jupyter notebook 中使用conda的虛擬環境需要先在某個虛擬環境下安裝conda install nb_conda然後在這個虛擬環境下輸入jupyter-notebook或者jupyter notebook打開jupyter就可以在網頁中選擇環境了,默認就是當前的虛擬環境。
在這裏插入圖片描述
切換環境的話在Kernel->change Kernel選擇相應的環境即可。

如果想用keras的話,需要選擇對應的版本:https://docs.floydhub.com/guides/environments/
在這裏插入圖片描述
然後pip install keras==2.1.6就可以用了

如果模型還沒訓練完中途終止的話,可能會出現顯存不會釋放的問題。具體看資源管理器中的GPU的內存佔用。
在這裏插入圖片描述
注意只看專用內存部分就行了,因爲共享內存我基本就沒見過被使用的時候,只有像一些核顯纔會使用,因爲它沒有專用內存。至於兩個的具體科普可以自行百度,簡單來說就是專用GPU內存是顯卡自帶的內存,而共享GPU內存是操作系統將系統內存(就是內存條所說的內存)劃分一部分給GPU稱爲共享內存,既然是共享說明GPU沒用的時候操作系統也能用。

但你發現專用內存佔用很高,但是在任務管理器中的進程欄又找不到一個程序佔用了相應的GPU(進程欄沒顯示GPU的可以右鍵名稱或者狀態那一行勾上GPU), 很有可能是訓練模型的程序沒有終止。

我們在系統中找到nvidia-smi.exe這個應用程序,一般位於C:\Program Files\NVIDIA Corporation\NVSMI,在CMD下運行這個程序看看有哪些程序佔用的GPU,將其中包含python的結束掉就行,結束進程命令tskill {pid}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章