nvidia-docker에 chainercv를 설치하고 작동을 확인할 때까지

nvidia-docker에 chainercv를 설치하고 작동을 확인할 때까지

2022-10-04 last update

5 minutes reading Chainer 도커 chaienrcv nvidia-docker python2.7

chainercv란?



PFN님 가 CV 관계의 유명한 이미지 인식·탐지 네트워크 구조를 정리해 주신 고마운 Python 라이브러리입니다.
matplotlib 관련 패키지와 OpenCV가 python으로 움직이는 환경이라면 다음 명령으로 빠져 나간다고 생각합니다.
$ sudo pip install chainercv

하지만, 어떤 환경에서도 학습용 프로그램이 움직이게 하고 싶었기 때문에, Docker(nvidia-docker)를 사용해 정리하기로 했습니다. chainer는 공식적으로 nvidia-docker 이미지가 있지만, 그것을 넣어도 내 환경에서는 trainer가 정지했기 때문에 1에서 환경을 만들고 있습니다 (아마 CUDA의 Docker 이미지 버전이 나빴던 것 같습니다) .

실행 환경


  • OS : Ubuntu 16.04 LTS
  • GPU: GeForce GTX 980 Ti (6GB)
  • docker : Docker version 17.09.0-ce
  • nvidia-docker : 1.0.1-1

  • 다음은 내가 한 작업 절차입니다.

    nvidia-docker



    Docker와 nvidia-docker를 넣는 방법은 공식을 참조하십시오.

    도커 설치
    nvidia-docker

    nvidia/cuda image



    CUDA가 설치된 Docker가 공개되어 있으므로 nvidia-docker로 RUN합니다.
    nvidia/cuda docker hub
    $ nvidia-docker run -it nvidia/cuda:7.5-cudnn5-devel
    

    작성한 이미지를 갱신하여 작업 공간을 작성하십시오.
    $ apt-get update && apt-get upgrade
    $ mkdir /workspace
    $ cd workspace
    

    python2.7



    초기 이미지에는 파이썬이 없으므로 설치합니다.
    그런 다음 numpy,pip,python-tk를 함께 넣으십시오.
    $ apt-get install python-dev python-numpy python-pip python-tk
    

    설치 확인
    $ python -V
    Python 2.7.6
    

    opencv3.2



    그런 다음 OpenCV를 설치합니다. 현재 최신 버전은 3.3.1이지만 사용하지 않았기 때문에 버전을 낮추고 있습니다.
    대부분의 절차는 공식적인 방법이지만 공식 사이트에서 3.2.0을 다운로드했습니다.
    $ apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    $ apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
    
    

    만약을 위해, 빌드할 때, BUILD_opencv_python2 를 ON으로 했습니다.
    $ apt-get install unzip wget
    $ wget https://github.com/opencv/opencv/archive/3.2.0.zip
    $ unzip 3.2.0.zip 
    $ cd opencv-3.2.0
    $ mkdir build
    $ cd build
    $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_opencv_python2=ON -D WITH_TBB=ON ..
    

    설치 확인
    $ python
    > import cv2
    > exit()
    

    pip install



    다음은 pip로 순서대로 설치합니다.
    지정한 버전은 제가 동작 확인했을 때의 버전입니다.
    $ pip install matplotlib==2.1.0
    $ pip install cupy==2.0.0
    $ pip install chainer==3.0.0
    $ pip install chainercv==0.7.0
    

    동작 확인



    ※동작 확인이므로 배치 사이즈는 적당합니다.
    $ cd /workspace
    $ wget https://github.com/chainer/chainercv/archive/v0.7.0.zip
    $ unzip v0.7.0.zip
    $ cd chainercv-0.7.0/examples/ssd
    $ python train.py --model ssd512 --batchsize 4 --gpu 0 --out /workspace/result_chainercv
    

    위에서 파스칼 VOC 학습이 시작되면 괜찮습니다.
    또한. Pascal VOC 데이터 세트가 ~/.chainer에 자동으로 저장되므로,
    docker의 용량이 커집니다. docker image가 커지는 것을 싫어하는 분은 주의하십시오.