nvidia docker DIGITS - eiichiromomma/CVMLAB GitHub Wiki

(nvidia-docker) NVIDIA DIGITS

ここからLocal Installerをダウンロードして$HOME/dockermountに置いておく。(要ログイン)

コンテナの設定

ベースはCUDA8 (2016/12/25現在)のcudnn-devel版。

sudo nvidia-docker run -it --name nv-digits -p 5000:5000 -p 34448:34448 -v $HOME/dockermount/:/mnt nvidia/cuda:cudnn-devel /bin/bash

あとはコンテナ内で作業。

まず/etc/apt/sources.listのサーバをjpに変更しておく。

各種パッケージのセットアップ

apt update && apt upgrade -y && apt install -y python-pip python-dev python-opencv libhdf5-dev sqlite3 python-matplotlib nkf git liblapack-dev gfortran imagemagick
dpkg -i /mnt/nv-deep-learning-repo-ubuntu1404-6-ga2-cuda8.0_8.0.7-1_amd64.deb 
apt update
apt install digits

データセットのダウンロード

ツールが用意されている。

cd /usr/share/digits/tools/download_data
python main.py cifar10 /mnt/cifar10

でcifar10を/mntに持ってこれる。 cifar10の他にmnistとcifar10が指定可能。

ちなみにデータセットの画像が小さいときはモデルに合わせる必要がある。caffeのドキュメントにあるように

for name in DIRNAME/*.png ; do convert -resize 256x256\! $name $name; done

でDIRNAME内のpngを256x256に変換できる(要ImageMagick)

例)cifar10

cd /mnt
cp -r cifar10 cifar10_256
for name in cifar10_256/train/airplane/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/automobile/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/bird/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/cat/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/deer/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/dog/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/frog/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/horse/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/ship/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/train/truck/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/airplane/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/automobile/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/bird/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/cat/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/deer/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/dog/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/frog/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/horse/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/ship/*.png ; do convert -resize 256x256\! $name $name; done
for name in cifar10_256/test/truck/*.png ; do convert -resize 256x256\! $name $name; done

サーバー起動

デバッグ用と通常用がある。

cd /usr/share/digits/
./digits-server 

でホスト側から http://localhost:34448にブラウザでアクセスすれば良い。