Skip to content

[Deep Learning] 在 Windows 上搭建 Tensorflow、CUDA、cuDNN 的訓練環境

搭建深度學習環境一直都不是一項簡單的事情,尤其是相當主流的 Nvidia 顯卡和 Tensorflow 的組合,其中版本的問題以及需要額外安裝的驅動、CUDA、cuDNN 就夠讓人頭疼了。而且主流的作業系統是 Linux 而非 Windows ,可以發現教學文明顯就少了些。

因緣際會下,我有了需要在 Windows 上搭建深度學習環境這樣的需求,由於以往都是習慣在 Linux 安裝的,所以對 Windows 的操作比較不熟。實際上,按照步驟一步步操作,加上過去有在 Linux 安裝的經驗,其實很順利地一次就成功了。

搭建深度學習環境的步驟如下,本文也是依此紀錄的:

  • 安裝 Python 3.6.8
  • 安裝 Python 的 virtualenv 套件(optional
  • 安裝 Tensorflow 1.13.1
  • 安裝 CUDA 10.0
  • 安裝 cuDNN 7.6.4

其中,關於 Python、Tensorflow、CUDA、cuDNN 等版本之間的相容性,可以參考 StackOverflow 上有人提供的一張經典的表格:

如果有不同版本的安裝需求,可以參考看看。


安裝 Python 3.6.8

安裝 Python(同時又指定版本)其實非常容易,直接在網路上搜尋,通常找到的第一個搜尋結果就是我們要的官網該版本下載地址。


往下拉,直到找到 Windows x86-64 executable installer,下載並執行。


這裡有個小細節:最好將 Add Python 3.6 to PATH 勾選之後再選擇 Install Now

安裝好之後,打開 Windows Terminal 或 cmd,輸入:

python

應該會看到以下畫面:

如果能看到 Python 3.6.8 的互動命令列,那就是安裝成功了。


安裝 Python 的 virtualenv 套件(optional

是否安裝 virtualenv 套件是可以選擇的,virtualenv 的功用在於能將某個資料夾變成 Python 的專案虛擬環境,在裡頭所安裝的套件都跟真正的環境是分開的,可以保證專案之間彼此不會套件衝突。

除此之外,如果需要模擬不同環境下的程式結果也可以使用這個套件 —— 當然,到最後多半應該都是 Docker 會比較方便,不過現在 Windows 上的 Docker 據說尚不支援 GPU。(如果我的說法有誤請告訴我,多半是我資料收集不夠齊全。我很高興能知道 Windows 上能夠使用適用於 GPU 訓練的 Docker

總之,推薦裝一下比較好,不過如果對於自己管理的套件都心裡有數,那多半也不會有問題就是了。

pip install virtualenv

安裝好之後,假設我們要將 test 資料夾變成虛擬環境,我們可以使用以下指令(在終端機內使用):

virtualenv.exe test
cd test\Scripts\
.\activate.bat

如果在終端機中,最前頭出現了:(test),那就代表自己已經在 Python 的虛擬環境中了,可以使用以下指令檢查:

pip list

應該只有 pipsetuptoolswheel 三個套件在該環境中。


安裝 CUDA 10.0

使用 Tensorflow 的話,CUDA 是必須要裝的。簡單來說,CUDA 是 Nvidia 專用於平行化運算的框架,而後頭會提到的 cuDNN(CUDA Deep Neural Network Library)則是其深度學習的函式庫。

CUDA 的下載位置可以從這邊找到: https://developer.nvidia.com/cuda-toolkit

如果你需要的版本跟我不同,可以直接在網路上搜尋 CUDA + 你要的版本,多半會直很快找到。

進入下載頁面之後,按照你機器的要求選擇配置,然後下載,並依照說明完成後續步驟。

在這裡, Windows 的步驟很單純,直接執行下載的執行檔即可。

選擇地址安裝
開始安裝
同意並繼續
快速、下一步
同意啦、哪次不同意 —— NEXT
下一步(奇怪這裡的翻譯沒統一)
如果只是安裝來做深度學習而不試玩遊戲,可以全部句選取消

下一步就要安裝 cuDNN 了。


安裝 cuDNN 7.6.4

以下分成兩部份談:

  • 下載 cuDNN 並配置至 CUDA 資料夾
  • 將 CUDA 中的 bin 資料夾路徑設定環境變數


下載 cuDNN 並配置至 CUDA 資料夾

要下載 cuDNN 可以前往以下網站: https://developer.nvidia.com/cudnn

然後,得加入 Nvidia 的開發人員計畫才能繼續。這裡就註冊起來吧!以後可能會常常用到,至少如果要下載不同版本總要用到吧!

接著,找到自己所需要的版本,在這裡我直接選擇了 cuDNN Library for Windows 10

下載結束之後,解壓縮,將 cuda\bin\ 底下的 cudnn64_7.dll 檔案複製到 CUDA 安裝的路徑中的 bin 資料夾底下,我個人的路徑是
C:\Program Files\NVIDA GPU Computing Toolkit\CUDA\v10.0

這一步驟非常重要,這是是否能讓 GPU 使用到 cuDNN 函式庫的重要一步。接下來,為了讓程式能順利執行,尚需要將 CUDA 中的 bin 資料夾設定環境變數。

不是 cuDNN 解壓縮的那個 cuda 資料夾哦,而是複製檔案過去的
C:\Program Files\NVIDA GPU Computing Toolkit\CUDA\v10.0\bin


將 CUDA 中的 bin 資料夾路徑設定環境變數

首先,於開始選單搜尋『環境變數』。

進入『進階』,選擇『環境變數(N)』。

編輯『使用者變數』。

選擇新增,填入剛剛 C:\Program Files\NVIDA GPU Computing Toolkit\CUDA\v10.0\bin 的路徑。你的路徑可能跟我不同,要記得填入自己的路徑。

這樣一來配置基本就完成了。


安裝 Tensorflow 1.13.1

打開 Terminal,最後來測試 Tensorflow 是否可以吃到 GPU 吧!

使用以下指令安裝指令版本:

pip install tensorflow-gpu==1.13.1

然後進入 Python 命令列。

python

輸入以下指令:

>>> import tensorflow as tf
>>> tf.test.is_gpu_available()

如果回傳的結果為 True,那代表環境已經順利配置成功了,恭喜!當然,如果手邊有可以測試的程式更好。


References


Read More

Leave a Reply