LoginSignup
3
3

More than 5 years have passed since last update.

nvidia-dockerにchainercvをインストールして動作確認するまで

Last updated at Posted at 2017-11-03

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の入れかたは公式を参照してください。

Docker install
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

初期のイメージにはpythonが入っていないため、インストールします。
ついでに、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

上記で、Pascal VOCの学習が始まれば、大丈夫です。
なお。Pascal VOCのデータセットが ~/.chainer に自動的に保存されるので、
dockerの容量が大きくなります。docker imageが大きくなるのが嫌な方は、注意してください。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3