deepcell fstack은 AI에 필요한 소프트웨어들을 컨테이너로 실행할 수 있도록 준비된 도커 컨테이너 이미지 모음입니다. deepcell fstack을 이용하면 다음과 같은 이점이 있습니다.
- 딥러닝을 위한 환경을 신속하게 준비할 수 있습니다.
- 쉽게 도커 컨테이너를 활용할 수 있습니다.
- CPU(Intel CPU 최적화 지원)만을 사용하는 환경과 GPU 가속 환경을 모두 사용할 수 있습니다.
Intel CPU가 장착된 컴퓨터 : 메모리 16GB이상 권장, SSD 권장
OS 설치 : OS 설치 문서를 보고 Ubuntu 18.04 LTS Desktop을 설치
참고URL :
- Download : https://releases.ubuntu.com/bionic/
- https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes?action=show&redirect=18.04%2FReleaseNotes
OS update
- upgrade package 설치(조심:20.04로 설치 옵션 나옴. 설치하지 않음)
- sudo apt upgrade
- sudo apt update
ubuntu os를 설치할 때 만든 사용자의 UID와 GID는 모두 1000이다. 아래와 같이 id 명령으로 확인할 수 있다.
id
이 문서에서는 사용자 계정과 그룹을 deepcell로 만들어서 사용하며 이 deepcell 계정의 UID와 GID는 1000이다. fstack의 컨테이너 이미지들은 UID 1000으로 실행되도록 빌드되어 있으므로 사용자 UID 1000인 계정으로 실행하여야 한다.
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker --version
- 2020/12/14 최신 버전 : Docker version 20.10.0, build 7287ab3
일반 사용자 계정(현재 사용중인 계정, UID는 1000)으로 docker를 실행하기 위해 아래 명령을 실행하여 사용자 계정을 docker group에 추가 한다.
sudo usermod -a -G docker $USER
sudo service docker restart
*** 이미 root로 docker를 실행한 후에는 root가 생성한 디렉토리와 파일에 접근권한이 없어서 오류가 발생한다.
*** 이 때는 오류가 나는 파일과 디렉토리의 소유를 변경한다.
docker pull starcell/fstack-tf115-cpu
jupyter notebook을 파일을 컨테이너와 호스트에서 공동으로 접근할 수 있도록 아래와 같이 디렉토리를 만들고 볼륨 마운트하여 사용한다.
mkdir ~/notebook
jupyter notebook을 사용하기 위해 아래 명령 들 중 하나를 참고하여 실행한다.
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf115-cpu jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/notebook'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf21-cpu jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/notebook'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf23-cpu jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/notebook'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-ov2021.2 jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/notebook'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf23-gpu jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/tf'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf115-gpu jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/tf'
또는, jupyter lab 사용하기 위해 아래 명령 들 중 하나를 참고하여 실행한다.
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf115-cpu jupyter lab --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/notebook'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf21-cpu jupyter lab --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/notebook'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf23-cpu jupyter lab --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/notebook'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-ov2021.2 jupyter lab --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/notebook'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf23-gpu jupyter lab --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/tf'
docker run --user 1000 -it -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf115-gpu jupyter lab --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/tf'
docker option에 -u 0를 추가: 아래 예 참고
docker run --user 1000 -itu 0 -v ~/notebook:/notebook -p 8888:8888 starcell/fstack-tf115-gpu jupyter lab --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/tf'
웹브라우저(chrome 브라우저를 권장)를 열고 host의 IP와 port번호를 입력한다.(아래 URL참고)
- URL : :8888
jupyter notebook에서 사용하는 기본 디렉토리는 호스트의 ~/notebook에 마운트 되어 있으므로 ~/notebook에 필요한 파일들을 만들거나 복사하여 사용할 수 있다.(사용자 권한 확인)
. | CPU-only / Python 3.x | GPU / Python 3.x |
---|---|---|
TensorFlow | fstack-tf115-cpu |
fstack-tf115-gpu |
TensorFlow | fstack-tf23-cpu |
fstack-tf23-gpu |
PyTorch | fstack-pytorch171-cpu |
fstack-pytorch170-gpu |
OpenVINO | fstack-ov2021.2 |