ubuntu14.04でnvidia-dockerを動かす(caffe編)

More than 1 year has passed since last update.


はじめに

ubuntu14.04にnvidia-dockerをインストールするの続き

nvidia-dockerでイメージを動作させてみる


エヌビディアのdocker hub

エヌビディアはdocker hubに様々のdockerイメージを公開している。これを使うと便利

エヌビディアのdocker hubはこちら

image

現在、エヌビディアが公開しているイメージは大きく分けて以下の3つ

1. CUDA+cuDNNの開発環境および実行環境

2. nvcaffe環境

3. DIGITS環境


nvidia-dockerを使ってcaffeを動かす


nvidia/caffeの概要

caffeのビルドは大変。CUDAのバージョンが変わる度、cuDNNがリリースされる度、ビルドし直すのは大変。そういう時は、nvcaffeのdockerイメージを使うと便利

nvidia/caffeイメージをダウンロード

snapshot1.png

latestをダウンロードする。現在のlatestだと使用しているCUDAのバージョンとcuDNNのバージョンはCUDA7.5とcuDNN5。自分でビルドしなくても最新が手に入って便利。(もうすぐCUDA8も出る)


nvidia/caffeにリンクされてるCUDA関連ライブラリの確認

$ sudo nvidia-docker run --rm nvidia/caffe ldd /usr/bin/caffe |grep libcu

#CUDA 7.5 & cuDNN 5
libcudart.so.7.5 => /usr/local/cuda-7.5/targets/x86_64-linux/lib/libcudart.so.7.5 (0x00007f843bbcf000)
libcurand.so.7.5 => /usr/local/cuda-7.5/targets/x86_64-linux/lib/libcurand.so.7.5 (0x00007f8435e72000)
libcublas.so.7.5 => /usr/local/cuda-7.5/targets/x86_64-linux/lib/libcublas.so.7.5 (0x00007f8434593000)
libcudnn.so.5 => /usr/lib/x86_64-linux-gnu/libcudnn.so.5 (0x00007f8430a48000)

使い方は簡単


nvidia/caffeの実行

$sudo nvidia-docker run --rm nvidia/caffe [caffeのコマンド]


という感じで使用する。


nvidia/caffeで学習

例えば、ホストにcaffeの手書き文字認識用学習データセットと学習設定ファイルを以下のように/home/mmurakami/caffe/mnist_testに用意した場合

#ホスト側に学習データセットと学習設定ファイルを用意

#DIGITSを使っているならDIGITSのJOBディレクトリを指定すればOK
$tree /home/mmurakami/caffe/mnist_test
/home/mmurakami/caffe/mnist_test
├── lenet_solver.prototxt
├── lenet_train_test.prototxt
├── mnist_test_lmdb
│   ├── data.mdb
│   └── lock.mdb
└── mnist_train_lmdb
├── data.mdb
└── lock.mdb

ホストディレクトリをマウントしてしまえば、すぐに学習を開始できる。こんな感じ

#/mnist_testにホストのディレクトリをマウント

$sudo nvidia-docker run -v /home/mmurakami/caffe/mnist_test:/mnist_test --rm nvidia/caffe caffe train --solver /mnist_test/lenet_solver.prototxt

学習開始

snapshot1.png