安裝 GPU 版的深度學習套件

這篇文章, 我們準備介紹 GPU 版深度學習套件, 包括 TensorFlow 和 PyTorch, 順便來學學 Anaconda 的 conda 系統, 要怎麼建一個虛擬環境。

在過去 (其實也沒多久之前) 的時代, 要自己安裝 GPU 版的深度學習套件是相當有挑戰, 簡直可以當成一項專長的。因為我們要:

  • 確定安裝新版、正確 GPU 趨動程式
  • 安裝正確版本 (不一定是最新版) 的 CUDA
  • 先加入 NVIDIA 開發者, 然後下載正確版本的 cuDNN
  • 安裝 TensorFlow 或 PyTorch

很難的點就是, 你可能要先查好你要裝的 TensorFlow, 到底是配哪一版的 CUDA 和 cuDNN 才可以。然後, 就在你查了人家成功的案例之後, 開開心心裝了下去, 發現又不行! 最後才發現原來 Python 版本不對…

這個時代已經過去了, 假設你已經有了 Anaconda, 我們來介紹怎麼樣裝 GPU 版的深度學習套件。然後, 你就會發現浪費一堆時間看到這裡, 因為安裝上是下個指令就完成了。為了怕大家覺得太簡單 (?) 我們先來學學怎麼在 conda 下建一個虛擬環境。

建立 conda 虛擬環境

conda 建立的虛擬環境就是獨立的 Python 環境。因為我們想要裝 TensorFlow, 所以我們把這個虛擬環境就叫做 tf 好了。大多數的時候建虛擬環境就是為了乾淨, 所以很多高手都不會裝完整的 Anaconda, 只裝需要的件。但我是低手, 為了怕突然發現虛擬環境中以前有的突然沒有了, 所以這裡還是裝了完整的 Anaconda。

conda create -n tf anaconda

這樣就好了耶!那個 -n 後面接的自然就是我們自己命名的虛擬環境名稱。我們也可以指定 Python 的版本,比如說,堅持 Python 3.7 的話是樣。

conda create -n tf python=3.7 anaconda

安裝 TensorFlow

這裡要提醒一件事, 有一件事我們需要自己做, 那就是記得要更新你 NVIDIA GPU 的趨動程式。不過好消息是, 當你發現錯誤之後再更新其實也可以 (狀態顯示就是經驗談…)

現在我們有新的 tf 虛擬環境, 就立馬給他進去。

conda activate tf

然後我們來安裝 GPU 版的 TensorFlow, 大家可以再複習一下以前可怕的時光。現在變成只有一行:

conda install tensorflow-gpu

這樣就裝完了, 是不是很沒有 fu 呢?之後我們在這個環境下的 Python, 就可開心使用 GPU 版的 TensorFlow 了。而且寫這篇文章的時候, conda 的 TensorFlow 已是 2.x 版。為了我 2.x 大 Keras 時代裝的, 可以不用擔心勇敢裝下去。

對了, 萬一沒有 GPU 的, 你就是用:

conda install tensorflow

以前我們可以笑那些有 GPU 的, 雖然理論上好棒棒, 但很難裝。可是現在那美好的時代已過去了。

要離開這個虛擬環境, 就是用:

conda deactivate

一個 Jupyter Notebook, 所有環境通吃

使用 Jupyter Notebook 的你可能會想, 以後我想用 TensorFlow, 應該就是 conda activate tf 進去這個虛擬環境, 然後打入 jupyter notebook 開始使用。用一用發現我要回去用原來的環境, 就停止 jupyter notebook 的 server, 再切原來環境…

哦, 當然不是這樣子啊! 我們可以讓 Jupyter Notebook 看到所有環境。這又是前言比正文長的例子, 因為我們真的要做的只有:

conda install nb_conda

就這樣, 你根本也不用 conda activate 進入某虛擬環境, 愛用哪個版本的都可直接在選單選擇那個 kernel。

安裝 PyTorch

我們安裝 PyTorch 時, 再順便介紹一些事。首先, 我們建一個虛擬環境, 就叫 pt 好了 (其實叫 pytorch 可能更好一點, 只是我怕大家弄不清哪個是我們自己取的名字、哪個是不可以改的)。

conda create -n pt anaconda

然後進入這個環境。

conda activate pt

重點來了, 我們安裝 Pytorch GPU 版。

conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

這裡有幾件事說明一下, 首先 pytorch 當然沒問題, 而 torchvision 是很多相關的範例數據集等等, 方便你學習。然後發現, conda 可以指定 CUDA 版本! 這一行就開開心心的做好以前要確認版本、找到在哪裡、下載安裝的事。最後是 -c, 這個是指定 channel, 雖然一般指不指定通常會找到一様的, 但這裡為保險不會找到意外的地方, 下載和想像不同的版本。

這事實上是 Pytorch 官方介紹的方式。如沒有要 GPU, 就是這麼做。

conda install pytorch torchvision cpuonly -c pytorch

順便說一下, 有個特别的 channel 叫 conda-forge, 這是社群提供給 conda 的, 就不算是「官方」提供版本。

我們安裝好要離開, 當然還是

conda deactivate

欣賞一下你的虛擬環境

你可以一下你目前所有的虛擬環境。

conda env list

如果發現有不需要的, 比方說一個叫 spam 的虛擬環境, 那就是用以下指令刪除它。

conda env remove -n spam

Google Colab 深度學習使用入門

設定 GPU/TPU

新增一個 Notebook

進入 CoLab 之後, 你要點一下 “New Python 3 Notebook", 馬上會出現一個, 嗯, Notebook!

notebook settings
進入 Notebook settings 要求使用 GPU/TPU

接著就自己看著辦, 看你要 GPU 還是 TPU!

使用GPU或TPU
選擇用 GPU 或 TPU

確認 TensorFlow 版本

在寫這篇文章時, CoLab 預設的 TensorFlow 版本還不是 2.x 版。我們可以用一個 CoLab 版魔術指令來確定這件事!

%tensorflow_version

這時我們得到的是目前用的是 1.x 版, 並且說有 1.x 和 2.x 版可以使用。於是我們可以用以下的方式, 就能指定使用 2.x 版的 TensorFlow!

%tensorflow_version 2.x

更新 Keras 版本

如果要用配合 TensorFlow 2.x 的 Keras, 我們必需更新 Keras。請使用

!pip install --upgrade keras

來更新 Keras。

連上你的 Google Drive

現在還有個小問題, 那就是我們存取檔案沒有像在桌機上那麼方便! 不過這 Google 做的, 當然可以連上你的 Google Drive!

from google.colab import drive

drive.mount('/content/drive')

這時會要求你登入 Google 帳號來認證, 之後會出現一個金鑰, 你要拷貝這個金鑰再貼回來! 這只是把我們的 Google Drive 掛上來, 要方便存取到我們的 Google Drive, 你可以打入:

%cd '/content/drive/My Drive'

當然, 建議你自己在你的 Google Drive 建個資料夾, 再用 cd 進去那個資料夾。到現在, 你就可以用之前 Python 檔案存取的方式, 來存取 Google Drive 上的檔案!