Win10 安裝 TensorFlow-gpu & Keras

Yang Hu

CUDA、cuDNN 改動的速度相對快,網路資料說法分歧。在此紀錄2018年5月順利安裝過程。相較我於2016年的安裝經驗,現在 Windows 10 上安裝支援 GPU 的 Tensorflow Backend 已幾乎是無痛安裝,不考慮效能差異下Ubuntu 已無特別優勢。

Windows 10 之下的原生 Ubuntu 無法正確的抓到 GPU。強烈建議若要安裝 Ubuntu 版本請使用獨立 Ubuntu 環境。

安裝流程

作業系統: Windows 10 version 1709, OS Build 16299.431 (如何查版本?)
顯卡型號: Nvdia GTX 1080Ti

0. Python 版本

本文安裝環境全都是在 Anaconda 下的虛擬環境進行。請建立一全新乾淨的環境來完成安裝。Python 版本是使用 3.5, 不確定 2.7 與 3.6 是否可行,歡迎補充。
> conda create -n keras35 python=3.5
> conda activate keras35

1. 安裝 Nvidia 顯卡驅動

顯卡驅動更新頻率高,不需要追求是最新的版本。若是 GeForce 10 系列的使用者可以略過此步驟。我自己的顯卡驅動版本是 385.54 (文章發布當下最新版本為397.64)。

2. 下載並安裝 CUDA 9.0

CUDA Toolkit downloads 下載Tensorflow支援的版本。目前 (2018.5.12) Tensorflow 官方支援的版本是 CUDA Toolkit 9.0,未來讀者下載前請還是到TF的安裝文件確認是否有更新的版本出現。下載頁面最下方除了主檔案外還有兩個補丁 Patch 1 & 2,不需要安裝。

安裝完成後確認以下路徑是否存在:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

3. 下載並安裝 cuDNN 7.0

cuDNN 開發者頁面 下載 Tensorflow支援的版本,下載會要求註冊會員 (免費)。目前 (2018.5.12) Tensorflow 官方支援的版本是 cuDNN 7.0,未來讀者下載前請還是到TF的安裝文件確認是否有更新的版本出現。

找不到 cuDNN 7.0 請按最下方的 Archived cuDNN Release。(如下圖)

下載後解壓縮會看到 "cuda” 資料夾,其中包含三個資料夾: "bin, include, lib” 把這三個資料夾直接拖曳到
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
路徑下即完成"安裝"動作。

4. 安裝 TensorFlow GPU

若先前已安裝Tensorflow需要移除,重新安裝 Tensorflow-gpu。由於 conda package 是社群自主管理而非官方直接管理,建議不要使用 conda install。應當使用 pip 進行安裝:
pip install tensorflow-gpu

5. 加入系統環境變數 %PATH%

按左下方開始,搜尋 "Edit the system environment variables”,應當會開啟 "System Properties” 的 "Advanced” 分頁。點選 "Environment Variables” 後在下半部 System Variables 尋找名稱為 PATH 的變數,按 edit 編輯。

新增兩項路徑到 PATH 變數下
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp

6. 驗證 TensorFlow 安裝是否成功

關閉所有視窗 (或是登出再登入),開啟 Anaconda prompt 並進到剛剛安裝的虛擬環境 keras35中。開啟 Python,執行下列指令:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

如下圖,看到 CPU 與 GPU 都有抓到即可。

7. 安裝 Keras

因為前面 TensorFlow-gpu 是透過 pip 而非 conda 安裝,這邊如果是改用 conda install keras 會出現 dependencies 辨識錯誤。所以一樣是使用 pip:
pip install keras
即可。 大功告成。


有發現錯誤的地方? 麻煩留言讓我知道,謝謝 :)

Yang Hu

Written by

Yang Hu

We slept on floors. We waded across rivers. — John D. Carmack

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade