內容目錄
這是2018年一月,在日本東京大學拍的照片,一切的起點。

誠如以往所說的,目前的科技日新月異,在研發的路上滿是荊棘,請踩著前人的屍體前進吧。

作業系統:Win 11 Home
顯示卡 (GPU): Nvidia RTX 3060 12G

基本上只有這兩個比較重要,其他的環境會隨著時間推進,一直改變。

我測試過後的成功步驟如下,給安裝到失敗、很惱怒的你 (或是未來的我自己):

  1. 安裝、更新Nvidia 顯卡驅動程式
  2. 安裝CUDA、cuDNN、VS(Desktop C++),三者缺一不可。
  3. 新增環境變數
  4. 安裝Anaconda
  5. 建立虛擬環境
  6. 執行測試檔案,確認有調用到GPU

我們假設顯卡驅動都已經安裝到最新的,所以直接從第二步開始吧!

Visual Studio 2022 安裝

讓我們來看看TensorFlow官網的畫面吧 (使用 pip 安裝 TensorFlow)

藍色的字有寫很清楚,要安裝VS的 C++ 相關套件,所以就安穩地裝吧。

以下這兩個是一定要安裝的,其他的隨你喜好。

下載連結:https://visualstudio.microsoft.com/downloads/

安裝CUDA以及cuDNN

接下來,要依照你的需求決定你要使用哪個python版本,這邊以Python 3.9 為例。

基於Python 3.9 ,我選擇相對應的TensorFlow版本是TF2.7.0

版本選擇很重要,因為這關乎到你接下來安裝的CUDA、cuDNN版本,裝錯就不會動。

有些教學文會說可以使用 conda install 來指定版本,但是安裝庫的資料更新太慢,有時會沒有你需要的版本,因此還是直接從Nvidia官網下載吧!

conda install cudatoolkit=X.X
conda install cudnn=X.X.X

根據TensorFlow官網所示 (GPU 支援  |  TensorFlow)

由於這是我選擇的是2.7.0版本,所以CUDA要安裝11.2版本,而相對應的cudnn版本也要特別挑選,可以到這個頁面參考:cuDNN Archive | NVIDIA Developer

可以看到cuDNN for CUDA 11.x 的話,最新的是 8.2.1版本,因此這邊我們就確定我們需要用來喚醒沉睡GPU所需要的是CUDA 11.2 + cuDNN 8.2.1 這兩個套件。

如果看到這邊覺得不習慣、資訊量太少,可以參考這個:TensorFlow 安裝與環境配置 — 简单粗暴 TensorFlow 2 0.4 beta 文档 (tf.wiki)

至於下載要加入什麼開發者社群這種東西我就不講了,總之最後會下載到兩個檔案,CUDA是安裝檔,可以直接執行安裝,安裝完之後會在系統碟裡面看到以下路徑:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2

確定這個路徑存在之後呢,再把cuDNN壓縮檔解壓縮之後直接複製到該目錄底下,選擇直接覆蓋即可。

根據TF官網的指示,你也可以把cuDNN裡面的檔案放到下面圖片中的路徑當中:

好,到此為止,理論上喚醒GPU的要素都湊滿了。

但是程式目前還不知道要去哪裡找這些要素,所以我們要告訴它。

新增環境變數

在windows 11 環境下呢,可以用cmd以外的方法來新增環境變數,請跟我這樣做:

點選開始,搜尋「環境變數」,然後你就會看到下列畫面:

這台電腦只有我在用,所以我就直接改系統環境變數了,點下去

點右下角那個藍色的東西,進到下列畫面

變數選擇Path,之後選編輯

這邊是已經新增完的畫面,可以選擇右邊的「新增」把以下幾個路徑新增進去:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\CUPTI\lib64

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include

C:\tools\cuda\bin

(以上參考TF官網 – GPU 支援  |  TensorFlow)

按下確定之後呢,這樣連找到喚醒要素的方法都給了,就往下一步前進吧!

(如果你不放心,可以重新開機看看)

安裝Anaconda

距離我上次安裝Anaconda已經是2020年初的事情,沒想到在這之間又多了這麼多變化,尤其是Spyder都出到第五版了,整個嚇爛。

Anaconda | Individual Edition

那基本上這個就只要一直下一步就好,不過有一個地方要記得勾選:

這不是最新版的圖,不過就讓我借用一下

記得要把Anaconda加到環境變數裡面,看看這是不是很方便啊,不用像剛剛一樣自己加。

會需要安裝一定的時間,這個時候可以去洗個澡、泡杯茶之類的。

建立虛擬環境

(這步驟對研究生或是個人開發者來說,其實可有可無,但在很多商業、工作環境下是很有用的,可以養成這個習慣啦,有好無壞。)

那接下來建立虛擬環境的部分,請打開這個 Anaconda Powershell Prompt

之後輸入如下:

conda create --name tf2_gpu
conda activate tf2_gpu
pip install tensorflow

那這邊一樣需要一點時間,可以等待一下,逛個網拍之類的。

安裝好之後呢,我們打開Anaconda Navigator,並把環境指定到我們剛剛建立的虛擬環境中

要選下面那個

之後把我最愛的Spyder給安裝上,點這個

應該會像右邊那樣呈現Install,只是我已經安裝好了所以顯示Launch。

安裝好之後,這樣就萬事具備了!

最後一關:測試環境,確定有使用到GPU

直接上程式碼:

同時可以按Ctrl+Alt+Del把工作管理員叫出來,並開啟到效能那頁,可以看到GPU的記憶體隨著程式執行被佔滿的畫面,這樣就代表有使用到囉,恭喜。

成功執行後,整個畫面會像這樣,不覺得好像很酷嗎?

那這下子把整個環境都設定好之後,就可以開始針對不同的問題、情境來使用了!

可以先把自己想要做什麼題目給想清楚,定義好問題是非常重要的一件事情。

那這篇文章就到這邊結束啦,下回見。

2 Comments

  1. 您好,謝謝您的詳細解說,使我獲益良多,不過在最後一步測試環境時會有 ModuleNotFoundError: No module named ‘tensorflow’ 出現 [使用Spyder (tf2_gpu)];不過當使用 [使用Spyder (anaconda3)] 時可以正常執行,但用到的是cpu,想請問您這是甚麼原因? 非常感謝

  2. 石榴您好,

    這表示在tf2_gpu這個環境裏面沒有成功地安裝tensorflow gpu版本,所以會沒辦法import噢!

發佈留言