1. 程式人生 > >入門深度學習 — 1

入門深度學習 — 1

使用 Paperspace 的 GPU 機器

前面提到你會需要一臺 GPU 機器,如果手邊沒有的話,可以先用線上的方案,Paperspace 的價格應該會比 AWS 跟 Floydhub 來得便宜。

在註冊完 Paperspace 帳號後,選定 ML-In-a-Box template 建立機器,這個 template 幫你事先安裝好所有開發 Machine Learning 所需要的套件,其中包含 Python 2/3、anaconda、Keras、tensorflow、Cafe、PyTorch 以及 Jupyter notebook 等等。設定完後 Paperspace 會將密碼寄給你,我自己的習慣是繫結一個 Public IP,然後使用 ssh 連進去使用。

keras 在安裝時,會重複安裝一次 tensorflow 作為 backend,但是那份 tensorflow 是支援 CPU 的版本,而非 GPU 版本,所以建議的安裝方式是先移除所有 tensorflow 套件,再手動透過 anaconda 安裝 tensorflow-gpu 以及 tensorflow-gpu-base,然後是 keras:

$ conda uninstall tensorflow
$ conda uninstall tensorflow-base
$ conda install tensorflow-gpu
$ conda install --no-deps keras

然後安裝

gpustat,透過 gpustat 你可以觀察 GPU 顯示卡的運作狀態,底層是透過執行 nvidia-smi 工具將 Nvidia 的資料 dump 出來顯示,包含顯示卡溫度、運作中的程式等等,所以透過 gpustat 你可以知道你的程式有沒有好好善用 GPU 的效能。

$ pip install gpustat

我第一次跑的時候,發現執行速度很慢,最後是透過 nvidia-smi / gpustat 才知道安裝的 tensorflow 根本是 CPU 版本,GPU 一點動作都沒有,重新安裝成 GPU 版本的 tensorflow 後就解決了這個問題,所以這個小工具很重要啊!

gpustat 會顯示 GPU 使用狀態

接下來一樣要跑 jupyter,但是因為是跑在遠端伺服器上,所以要多作一些額外的設定讓你可以連進去使用:

  1. 產生 Jupyter 設定檔,並設定密碼。當你使用 browser 連進 jupyter notebook 時,會需要輸入這組密碼來進去,這是預防當你把 jupyter notebook 放到公開網路時,被人進去惡搞。
$jupyter notebook --generate-config
$jupyter notebook password

2. 設定 jupyter server 繫結 IP 位址

編輯 ~/.jupyter/jupyter_notebook_config.py 將 binding 的 IP address 改成 “*”

3. 設定防火牆 ufw,允許外部連進 8888 port

$ sudo ufw allow 8888

4. 執行 $ jupyter notebook

接下來你就可以直接用 browser 連到該機器 Public IP 的 8888 Port 使用 Jupyter notebook