안녕하세요.
이전 포스팅에서 GPU를 사용하는 Docker를 알아보았습니다.
2019/04/04 - [Dev Platform/Docker] - [Docker] nvidia docker 및 nvidia/cuda 이미지 설치하기
이어서 GPU 기반의 tensoflow를 이용한 objectdetection 예제를 돌려보겠습니다.
1. Dockerfile 만들기
아래 내용 중 빨간색 부분을 제외하고는 앞선 포스팅에서 설명하였습니다.
FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 RUN apt-get update && yes | apt-get upgrade RUN apt-get install -y build-essential RUN apt-get install -y python3 python3-pip openjdk-8-jre wget RUN ln -s /usr/bin/python3 /usr/bin/python RUN ln -s /usr/bin/pip3 /usr/bin/pip RUN pip install --upgrade pip WORKDIR /home/root/ RUN wget -O pycharm.tar.gz "https://download.jetbrains.com/python/pycharm-community-2019.1.tar.gz" RUN tar -xf pycharm.tar.gz --directory /opt Run ln -s "/opt/pycharm-community-2019.1/bin/pycharm.sh" /usr/bin/pycharm RUN apt-get install -y protobuf-compiler python3-pil python3-lxml git RUN pip install tensorflow-gpu RUN git clone https://github.com/tensorflow/models.git /tensorflow/models WORKDIR /tensorflow/models/research RUN protoc object_detection/protos/*.proto --python_out=. RUN export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim RUN pip install jupyter RUN pip install matplotlib RUN jupyter notebook --generate-config --allow-root RUN echo "c.NotebookApp.password = u'sha1:6a3f528eec40:6e896b6e4828f525a6e20e5411cd1c8075d68619'" >> /root/.jupyter/jupyter_notebook_config.py EXPOSE 8888 ENTRYPOINT jupyter notebook --allow-root --ip=0.0.0.0 --port=8888 --no-browser |
1 : tensorflow-gpu는 현재 최신 버전에서 cuda 10.0을 사용하고 있습니다. 때문에 10.0을 기본 이미지로 설정합니다.
12 ~ 13 : 샘플을 돌리기 위한 라이브러리들을 설치합니다.
14 ~ 16 : git을 이용해 tensorflow object detection 예제를 pull 하고, 컴파일러를 준비합니다.
17 : 환경설정을 추가합니다.
2. nvidia-docker로 container 실행
Docker build를 진행하고 아래와 같이 실행합니다.
nvidia-docker run -it --rm -p 8888:8888 dev:cuda_10.0_gpu_py3_jupyter_tensorflow |
아래는 실행과 동시에 jupyter가 실행되는 모습입니다.
3. jupyter notebook에서 object_detection 찾기
웹 브라우져 접속 후 object_detection 폴더를 찾습니다.
아래 그림과 같이 object_detection_tutorial.ipynb에 클릭해서 파일을 열어 봅니다.
4. 샘플 코드 Run
Cell > Run All을 클릭합니다.
예제 이미지로부터 객체 검출해서 결과물을 화면에 표시합니다.
아래 그림의 로그를 확인해보면 열심히 GPU 관련 로그가 찍히는 것을 확인할 수 있습니다.
'Dev Platform > Docker' 카테고리의 다른 글
[Docker] nvidia docker 및 nvidia/cuda 이미지 설치하기 (0) | 2019.04.04 |
---|---|
[Docker] jupyter notebook(쥬피터 노트북) 포함하여 이미지 만들기 (0) | 2019.04.03 |
[Docker] python3 도커 이미지 만들기 ( 파이참 포함 ) (1) | 2019.03.31 |
[Docker] image를 계층 분리해서 관리 ( Dockerfile ) (0) | 2019.03.31 |
[Docker] Docker를 이용해서 QT 빌드 시스템 구축해보기 (0) | 2019.03.27 |