본문 바로가기

Dev Platform/Docker

[Docker] tensorflow object detection 샘플 돌려보기(GPU)

반응형

안녕하세요.

이전 포스팅에서 GPU를 사용하는 Docker를 알아보았습니다.

2019/04/04 - [Dev Platform/Docker] - [Docker] nvidia docker 및 nvidia/cuda 이미지 설치하기

 

[Docker] nvidia docker 및 nvidia/cuda 이미지 설치하기

안녕하세요. Docker에서 GPU를 사용할 수 있는 방법을 알아보겠습니다. https://github.com/NVIDIA/nvidia-docker NVIDIA/nvidia-docker Build and run Docker containers leveraging NVIDIA GPUs - NVIDIA/nvidia..

tobelinuxer.tistory.com

이어서 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 폴더를 찾습니다.

jupyter 로그인 후 첫 페이지

 

아래 그림과 같이 object_detection_tutorial.ipynb에 클릭해서 파일을 열어 봅니다.

 

4. 샘플 코드 Run

 

 

Cell > Run All을 클릭합니다.

object detection example 결과물

예제 이미지로부터 객체 검출해서 결과물을 화면에 표시합니다.

아래 그림의 로그를 확인해보면 열심히 GPU 관련 로그가 찍히는 것을 확인할 수 있습니다.

GPU 로그 확인

 

반응형