-
Docker로 딥러닝하기 (Pytorch)개발 환경/Docker 2020. 1. 21. 21:11반응형
1. docker 설치
curl -fsSL https://get.docker.com/ | sudo sh
위 명령어를 입력하면 docker를 자동으로 설치해준다.
docker --version
output:
Docker version 19.03.5, build ....
2. Pytorch GPU 버젼 image pull
docker hub에서 pytorch/pytorch에 들어가보면 여러가지 tag가 많다. 그중 나는
- pytorch 1.1.0
- cuda 10.0
- cudnn 7.5
가 설치되어 있는 image를 pull하였다.
docker pull pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel
output:
1.1.0-cuda10.0-cudnn7.5-devel: Pulling from pytorch/pytorch 34667c7e4631: Pull complete d18d76a881a4: Pull complete 119c7358fbfc: Pull complete 2aaf13f3eff0: Pull complete 643564d518c8: Pull complete 1fea03e629a4: Pull complete 45402f4cf61d: Pull complete 86f75b2a221d: Downloading [=======================> ] 241MB/518.5MB bed75fe8e483: Downloading [===================> ] 280MB/720.7MB 6c2a711c6f0a: Downloading [=============================> ] 260.9MB/441MB 0cebfcdacfee: Waiting 854b430e64dc: Waiting c4f1bf920b70: Waiting ...
이렇게 설치가 시작된다. 우분투, pytorch, cuda 등등을 전부 설치하는 일이기 때문에 용량도 굉장히 크고 오래 걸린다.
3. Run container (with mount)
docker run -i -t --name pytorch -v /home/han/PycharmProjects/spoken_language_idenfication:/workspace pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel /bin/bash
output:
root@90aed91f0bb1:/workspace#
위와 같이 터미널이 실행된다.
명령어는 위와 같은데 차근차근히 살펴보자.
(1) -i
docker container와 입출력을 interactive하게 만들어준다.
(2) -t
터미널을 사용하게 해준다.
(3) --name
docker container의 이름을 설정한다.
(4) -v
Local과 container 사이에 공유 볼륨을 형성한다. /home/han/PycharmProjects/spoken_language_idenfication를 /workspace에 마운트 시킨다.
(5) pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel
docker image에는 tag에 따라 다양한 이미지가 존재한다. 여기서 pytorch/pytorch는 image repository고 1.1.0-cuda10.0-cudnn7.5-devel은 tag다. tag의 내용은 중요한 패키지들 버젼이 명시되어있다.
(6) /bin/bash
터미널을 실행시킨다.
ls
output:
LICENSE dataset log models result.py run_crnn.sh run_dnn.sh util.py README.md loader.py logger.py result run_crnn.py run_dnn.py save_model wavio.py
project와 마운트를 했기때문에 project의 내용이 전부 마운트되어 있다.
4. Run python
sh run_crnn.sh
output:
... ModuleNotFoundError: No module named 'librosa'
librosa가 없으므로 설치
pip install librosa
다시 실행하니 이번에는 sndfile library가 없다고 한다.
apt-get update apt-get install libsndfile1
matplotlib도 없어서 설치해주고 실행하니 돌아가기 시작한다. 하지만 code가 GPU를 사용하지 않고 CPU로만 돌아간다.
5. Run with GPU
docker가 GPU를 인식하기 위해서는 docker-nvidia2라는 것을 설치해야한다.
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo pkill -SIGHUP dockerd
이렇게 설치를 완료했으면 docker대신 nvidia-docker라는 명령어를 통해 docker를 사용할 수 있다.
출처:
https://brunch.co.kr/@hopeless/10
https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html
https://stackoverflow.com/questions/55086834/cant-import-soundfile-python
https://itzone.tistory.com/610
https://hanseokhyeon.tistory.com/entry/docker-pytorch-image-이용해서-pytorch-사용하기
https://m.blog.naver.com/PostView.nhn?blogId=alice_k106&logNo=220359633558&proxyReferer=https%3A%2F%2Fwww.google.com%2F반응형'개발 환경 > Docker' 카테고리의 다른 글
Mac + Docker 에서 GUI 사용하기 (python matplotlib 사용하기) (5) 2020.02.23 Docker + Pytorch + GPU로 딥 러닝 개발하기 (2) 2020.02.18 docker pytorch image 이용해서 pytorch 사용하기 (0) 2020.01.21 docker 설치하고 jupyter notebook으로 tensorflow하기 (0) 2020.01.12 docker 볼륨 공유 (0) 2020.01.12