Docker で jupyter notebook から Caffe を試した
前提
Caffe を試したくなったが環境構築に苦労したのでメモ。
- ハード: MacBook Pro 13in retina (late 2013)
- OS: OS X El Capitan
なので CPU モードしか試していない。
最初はふつうにビルドしようとしたのだが、依存関係が多すぎたり、python 2 なのか 3 なのか OpenCV も 3 なのかなんなのか、conda がいいのか悪いのか、などなど色々と困って、Makefile.config を何度書き換えても失敗し、しんどくなったので、Docker を試してみた。自分は Docker も機械学習も全くの素人でこれが初めての試み。
手順
まず Docker for Mac をふつうにダウンロードしてきてGUIでインストール。起動。
次に、jupyter と Caffe などの色々なパッケージが入った Docker 用イメージファイルを公開してくれている人がいた ( https://github.com/floydhub/dl-docker ) ので、
$ git clone https://github.com/floydhub/dl-docker
としてダウンロード。
しかしこのあとマニュアルにあるとおりのコマンドで jupyter を起動すると kernel が起動しなかった。対処法は、フォーラムにあるものを微妙に改変して、
$ docker run -it -p 8888:8888 -p 6006:6006 floydhub/dl-docker:cpu sh -c 'jupyter notebook --ip=0.0.0.0 --no-browser'
でいけた(フォーラムのコマンドは floydhub/ がない)。
これで docker 内の仮想マシンみたいなものに入るので、その中の /opt/caffe/example (だったかな?)へ辿っていき、そこにあるサンプルの notebook を開いていつものように実行する。というところまでやった。
チュートリアルの0番と1番は、GPUのところをちょこっとCPUに書き換えたら問題なし。具体的には、
caffe.set_device(0) caffe.set_mode_gpu()
というところが何箇所か出てくるので、これら2行をコメントアウトし、
caffe.set_mode_cpu()
に変える。
しかしチュートリアルの2番は画像をDLした後あたりでクラッシュする…。これはまだ解決していない。
参考
今回使わせてもらった Docker は、
Installing all the deep learning frameworks to coexist and function correctly is an exercise in dependency hell.
とあるので複数の deep learning フレームワーク環境を共存させるのが大変、というモチベーションだったようだ。
- 上記のように単に jupyter 起動してチュートリアル試すだけならあまり必要はないかもしれないが、docker のコマンドについてはこの Qiita がわかりやすくまとまっていた→ http://qiita.com/hihihiroro/items/6dda871dc2566801a6da
- Windows の場合はビルド済みバイナリがあるようだ→ http://tadaoyamaoka.hatenablog.com/entry/2017/03/15/233723
- 他に参考になりそうな日本語資料として、https://kyamagu.github.io/dl-workshop-2016/ がよさそう。