개발 환경/Docker
-
[Docker for ML #4] 딥러닝 학습 시작하기개발 환경/Docker 2020. 8. 28. 17:32
123편에서 docker의 기본적인 명령어와 사용법을 익혔다. 이제 진짜 학습을 시작해보자. 1. --rm 옵션 --rm 옵션은 컨테이너가 내려가면 바로 컨테이너를 삭제하는 옵션이다. 딥러닝을 학습할 때 보통 코드가 다 돌고 컨테이너를 나가면 더이상 필요가 없기 때문에 이 옵션을 자주 사용하게 된다. 2. bash로 들어가서 명령어를 두번 실행하지 말자. 이해를 위해 계속 bash로 들어갔지만 사실 그냥 바로 python 명령어를 실행해도 된다. docker run --rm --gpus=all -v ~/PycharmProjects/mnist:/opt/project tensorflow2 python main.py docker run --rm: 컨테이너 삭제 --gpus=all: GPU 사용 -v ~/Pyc..
-
[Docker for ML #3] 로컬 디렉토리와 컨테이너 마운트하기개발 환경/Docker 2020. 8. 28. 16:56
Docker container를 실행해서 코드를 돌릴 수 있는 상태지만 내가 로컬에서 작성한 코드나 DB 파일이 컨테이너 내부에 존재하지 않는다. 이러면 컨테이너 내부에서 딥러닝 학습을 할 수가 없다. 그래서 로컬의 디렉토리와 컨테이너의 디렉토리를 마운트해야한다. 1. -v 옵션 -v 옵션은 로컬과 컨테이너 사이의 마운트를 가능하게 한다. docker run -it -v ~/PycharmProjects/mnist:/opt/project tensorflow2 bash -v : 내 로컬에 ~/PycharmProjects/mnist라는 디렉토리를 컨터이너의 /opt/project에 마운트 시킨다. /opt/project에 마운트시키는 이유는 Dockerfile에서 WORKDIR을 /opt/project로 지정..
-
[Docker for ML #2] 나만의 개발환경 만들기 (Dockerfile)개발 환경/Docker 2020. 8. 28. 16:43
Dockerhub에는 이미 검증된 수많은 docker image가 있다. 하지만 나의 프로젝트에서 필요한 환경을 구축하기 위해서는 dockerhub의 이미지만으로는 부족하다. 즉, 나만의 이미지를 만들어야한다. Docker에서는 Dockerfile로 가능하다. 1. Dockerfile 만들기 mkdir docker cd docker vim Dockerfile docker라는 디렉토리를 만들고 이동한 후 Dockerfile이라는 파일을 작성한다. 디렉토리를 만드는 이유는 docker는 기본적으로 docker image를 빌드할 때 디렉토리에 있는 모든 것을 복사한다. 그래서 별도의 디렉토리에 Dockerfile을 만드는 것이다. 아래 내용을 복붙한다. FROMtensorflow/tensorflow:late..
-
[Docker for ML #1] 설치와 기본 명령어개발 환경/Docker 2020. 8. 28. 15:32
Docker는 현재 다양한 개발 분야에서 사용되고 있다. 딥러닝 개발자는 CUDA나 TensorFlow, PyTorch 등 버전이 충돌할 때 docker를 찾게 된다. 1. 설치 sudo apt install docker.io 2. sudo 권한 부여 Docker는 기본적으로 sudo 권한을 필요로 한다. 매번 sudo를 붙여주는 것은 귀찮으니 현재 user에게 docker를 sudo 권한으로 사용할 수 있게 해주자. sudo usermod -aG docker $USER 명령어를 쳤으면 터미널을 껐다가 다시 키자. 3. 설치 확인 docker --version output: Docker version 19.03.8, build afacb8b7f0 4. run 테스트로 tensorflow 이미지를 받아서 ..
-
Docker, docker-compose에 원하는 GPU만 할당하기개발 환경/Docker 2020. 5. 21. 14:20
현재 내 서버에는 GPU가 2개 있는데 학습하고 있는 코드는 multi-gpu 코드가 아니다. 그러므로 2개의 GPU에 각각 코드를 돌린다면 2번의 실험을 동시에 할 수 있다. 그래서 docker-compose를 이용해 특정 GPU만 할당하는 방법을 알아보았다. 0. GPU 확인 nvidia-smi output: 1070 2개가 보인다. GPU index는 0부터 시작하여 2개니깐 1에서 끝난다. 1. docker docker run -e NVIDIA_VISIBLE_DEVICES=1 hsh0322/las-pytorch python3 train.py 위와 같이 -e NVIDIA_VISIBLE_DEVICES=(원하는 GPU number)로 옵션을 넣어주면 된다. 2. docker-compose version..
-
Docker compose 원하는 log만 출력하기개발 환경/Docker 2020. 4. 16. 17:48
기본적으로 docker-compose up 으로 container들을 실행하면 모든 서비스에 대해 log가 다 출력된다. 1. docker compose detached 모드로 실행 docker-compose up -d output: Creating network "listen-attend-and-spell-pytorch_default" with the default driver Creating listen-attend-and-spell-pytorch_train_1 ... done Creating listen-attend-and-spell-pytorch_tensorboard_1 ... done 생성되며 백그라운드에서 실행된다. 2. 특정 서비스에 대해서만 log 출력 docker-compose logs ..
-
딥 러닝을 위한 docker-compose 설치 및 사용법 [pytorch, tensorboard 예제]개발 환경/Docker 2020. 4. 11. 17:49
Docker를 도입한지 시간이 흘렀고, 현재 가장 Low-level로 사용중이다. docker run ...으로 시작하는 명령어를 통해 컨테이너를 만들고 실행한다. 이제는 익숙해졌지만 사실 docker-compose라는 자동화된 패키지가 있는 것을 알고 있었다. 이번 기회에 한번 docker-compose를 사용하여 생산성을 높여볼까 한다. 0. Docker로 딥 러닝 하기 위한 준비 https://hanseokhyeon.tistory.com/entry/Docker-Pytorch-GPU로-딥-러닝-개발하기?category=854704 Docker + Pytorch + GPU로 딥 러닝 개발하기 https://www.slideshare.net/MichaelDucy/the-future-of-everythin..
-
서버에서 Docker + tensorboard 사용하기개발 환경/Docker 2020. 3. 11. 15:08
0. 내 환경 및 계기 Local macOS Server Ubuntu 18.04 Docker Docker image Ubuntu 18.04 tensorflow tensorboard 실험해본 결과 컨테이너에 tensorboard만 있고 tensorflow만 있으면 안된다. 우선 요새 모든 프로젝트를 docker 기반으로 진행중이다. 그러다가 tensorboard를 사용해야 할 일이 생겼다. 최대한 server의 패키지를 사용하지 않는 것이 목표이기 때문에 tensorboard도 docker 컨테이너에서 돌려보고자하였다. 1. 설치 위에 보여준 환경처럼 필요한 환경이 모두 구축되어 있어야한다. pytorch에 tensorboard를 사용중인데 tensorflow까지 깔아야 한다는게 억울하다... 2. 예제 ..