【機器學習從零到一】 Day2: 建立機器學習環境 (GPU environment)

PJ Wang
6 min readJun 30, 2019

從學生時期開始接觸機器學習,當初以為的 Machine learning 就只要會處理資料、訓練模型、得到比較高的準確率,然後就此結束,但出社會後發現,從 Jupyter 到 Production 的路還有段距離,那該怎麼辦呢?

因此,接下來將會分幾個章節來介紹:

  1. 建立 GCP 機器 — VM 執行個體
  2. 建立機器學習環境 (GPU environment)
  3. Pytorch 介紹與範例 (image classification)
  4. Data science 的版控 → DVC 的建立與使用
  5. 利用 Flask 部署機器學習套件
  6. 利用Docker 建立機器學習容器

環境建立

Step1: 安裝 cuda

這次安裝的環境為:Cuda 9.0 + cuDNN 7.0.5

安裝的方式可以參考我的另一篇文章:Ubuntu16.04 install CUDA 9.0 + cuDNN 7.0.5 ,並且從 Step 1 Installation CUDA 開始依序執行即可。

Step2: 安裝 conda

我們會利用 conda 來建立虛擬環境,因此會先安裝 conda,而安裝的方式如下所示:

$ curl -O https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
$ sha256sum Anaconda3-5.0.1-Linux-x86_64.sh
$ bash Anaconda3-5.0.1-Linux-x86_64.sh

安裝好後,如下圖所示

圖(一):安裝 Conda

最後還要操作一步,才能直接操作 conda

$ source ~/.bashrc

Step3: 建立虛擬環境

Conda 建立環境的方式如下,可以在建立的過程順便安裝想要有的套件

$ conda create --name 環境名稱 套件1 套件2 ...

我們這次選擇的 Python 版本為 3.6,並且後續會使用 Pytorch 框架,因此我命名為 pytorch_p36。

$ conda create --name pytorch_p36 python=3.6

建立好環境後,可以輸入下列指令來查看目前所有建立好的環境。

$ conda env list

切換環境的方法為:

$ source activate pytorch_p36

Step 4: 安裝 ML 相關套件

在下一章,目前幾個較大的框架,安裝方法都非常簡單,下方為 GPU 版本

Tensorflow: https://anaconda.org/anaconda/tensorflow-gpu

(tensorflow_p36)$ conda install tensorflow-gpu

Pytorch: https://pytorch.org/

(pytorch_p36)$ conda install pytorch torchvision cudatoolkit=9.0 -c pytorch

Step 5: 測試 GPU

安裝好了套件後,如何確定有沒有真的吃到 GPU 呢?可以先試著切換到該環境當中,並且看看 device name 為何。

(pytorch_p36)$ python
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.cuda.get_device_name(0))
Tesla K80

Step 6: Jupyter notebook 遠端連線

在寫 Python 時,大部分的人都會利用 Jupyter notebook 來當作實驗的場域,不過可能很多人都會懊惱,如果機器不在本機端那該如何連線呢?

首先,必須先將該安裝的套件都安裝完畢,如下所示

$ conda install jupyter
$ source activate pytorch_p36
(pytorch_p36)$ conda install ipykernel
(pytorch_p36)$ python -m ipykernel install --user --name pytorch_p36(環境名稱) --display-name "pytorch p36(顯示名稱)"

建立 ipykernel 的原因是,在使用 Jupyter notebook 時,可以立即切換想要的環境,可以節省大量的麻煩。

建立好後,可以開一個新的 Terminal 並且連線的時候用下方的 script

$ ssh -L 本機端port:localhost:遠端port XX.XX.XX.XX

例如我在本機端開了port: 8158,而遠端的機器 port: 8888,則

$ ssh -L 8158:localhost:8888 XX.XX.XX.XX

連線上後,需要再遠端的地方直接開啟 jupyter notebook (不需切換虛擬環境)

$ jupyter notebook --no-browser --port=8888

Jupyter notebook 開啟之後,即可在本機端的瀏覽器輸入 localhost:8157 即可連線,不過第一次登入會需要輸入 Token ,而這個 Token 會在剛剛開啟Jupyter notebook 時會顯示在下方。

圖(二):開啟 Jupyter notebook
圖(三):成功開啟 Jupyter notebook

成功登入後,即可看到你的目錄,如下圖所示。

圖(四):Jupyter notebook 目錄

Next…

下一章,會開始介紹機器學習實作的套件 pytorch ,當中會介紹如何客製化得製作資料集、損失函數、模型等等。

Day 3: Pytorch 介紹與範例 (cosmetics classification)

Error Message

若出現 conda: command not found,則輸入 sudo vi ~/.bashrc 並且在最後面加上 export PATH=~/anaconda3/bin:$PATH

如果喜歡我的文章內容,請幫我多多鼓掌

1 個鼓掌:喜歡這篇的內容

10個鼓掌:期待這一系列的課程

30個鼓掌:希望未來能有更多相關文章

--

--

PJ Wang

台大資工所碩畢 / 設計思考教練 / 系統思考顧問 / 資料科學家 / 新創 / 科技 + 商業 + 使用者