Docker 應用到 Machine Learning

Posted on June 26, 2023 by Allen
Self-learning Container

TensorFlow Container 使用


假設我們要開發的環境需要以下套件

  • Ubuntu 20.04
  • tensorflow
  • jupyter notebook
  • matplotlib
沒有 Tensorflow Container Tensorflow Container
1. 抓取 Ubuntu image 1. 抓取 NVIDIA NGC tensorflow image
2. 安裝 python ---
3. 安裝 tensorflow ---
4. 安裝套件 ---

什麼是 TensorFlow Containers?


NVIDIA NGC Catalog

  • TensorFlow image 可以由 NVIDIA NGC 下載,提供了加速工作流程的 GPU 加速軟體
    • 性能優化的容器
    • 預先訓練的 AI 模型
    • 特定產業的 SDK
  • 以 TensorFlow Container Version 22.10 為例可以於 NGC 中查看自己需要的版本,需要特別注意自己機器的 CUDA 版本可不可以支援
    • Ubuntu 20.04
    • NVIDIA CUDA 11.8.0
    • TensorFlow 1.15.5
    • Jupyter notebook
    NGC container version

MNIST with TensorFlow DEMO


1. 從 NGC 抓取需要版本的 tensorflow container

2. Run container: docker run --ipc=host --gpus all -it -p 8888:8888 --rm -v <本機位置>:<容器位置> nvcr.io/nvidia/tensorflow:22.10-tf1-py3

  • --ipc=host: 代表與 host 共用記憶體空間
  • --gpus all:代表要啟動 CUDA,且取得所有的 host’s GPU
  • --rm:離開容器自動刪除容器

3. 開啟 jupyter notebook: jupyter notebook --allow-root --no-browser --ip=0.0.0.0

  • --allow-root:系統管理員權限
  • --no-browser:不要自動開啟瀏覽器
  • --ip=0.0.0.0:可以從各個 ip 連入

4. 檢查是否有啟動 CUDA 加速

check CUDA on/off check CUDA on

5. 透過 GPU 加速訓練模型

train model with GPU

Image to docker hub


什麼是 Docker Hub?

  • Docker Hub 類似 GitHub
  • 存放各式各樣的 images
  • 開發者可以存取自己的或是公開的 images

Docker Hub 操作步驟

1. 註冊 docker hub 帳號

2. 終端機輸入 docker login (登入帳號密碼)

docker hub login

3. 於 docker hub 創建一個 Repository

docker hub create repository

4. 查看想要上傳的 image

check image

5. 修改標籤名稱與 docker hub repository 名稱相同

modify image name

6. push 到 docker hub

image push to hub
image push to hub

Reference


Note

透過 NGC 使用 pytorch 或 tensorflow 的 container 很方便,用完後再把更新過後的 image 上傳到 docker hub,這樣以後組員或朋友想要使用就可以快速建立環境