Caffeの環境をUbuntu上に用意するように書籍に書かれていますが、手間がかかるためDocker上で動作させます。その際にハマったことを紹介します。
DockerとKitematicをインストールします。
DockerHubのアカウントを作ります。
そして検索ウィンドウにUbuntu14.04 Caffeなどと打ち込みます。(またはcuda-caffe)
そうすると↓2kというのがあります。これは2000ダウンロードされていることを意味します。
2000ダウンロードされているので信用できると判断できるので、CREATEボタンを押します。

そうするとイメージがダウンロードされると以下のような画面になります。

execボタンを押すとターミナルが起動しますので。
bashを起動させた方が入力しやすいので、terminal上でbashと入力すると補完が効くようになります。
起動するとcaffeのフォルダの中にいるはずです。
pwdと打って確認してみてください。
そのあとに
cp Makefile.config.example Makefile.config
を実行してください。
g++-4.6も必要になるのでインストールします。
sudo apt-get install g++-4.6
次にviだと入力しづらいのでvimをインストールします。
sudo apt-get install vim
vim Makefile.config
そして、以下の行を編集します。行はバラバラに記述しているので、それぞれ / + 検索ワード (スラッシュバー + 検索したい文字)で検索してください。
CUSTOM_CXX := g++ //修正前
CUSTOM_CXX := g++-4.6 //修正後
# CPU_ONLY := 1 //修正前
CPU_ONLY := 1 //修正後、コメントアウトを外す
そして
make
make test
make runtest
これで最終的にPASSEDという文字が出れば完了です。
次にMNISTのサンプルを動かします。
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
//MNISTの学習を実行 (ここでエラーになる)
./examples/mnist/train_lenet.sh
私の環境では最後の**./examples/mnist/train_lenet.sh**で上手くいかなくなりました。
less ./examples/mnist/train_lenet.sh
と入力して確認するとlenet_solver.prototxtを実行していることがわかります。
lenet_solver.prototxt
で
# solver mode: CPU or GPU
solver_mode: GPU //修正前
# solver mode: CPU or GPU
solver_mode: CPU //修正後、GPUをCPUにする
最後にMNISTの学習を実行します。
//MNISTの学習を実行
./examples/mnist/train_lenet.sh
これで私の環境では上手くいきました。
参考書籍
初めてのディープラーニング オープンソース"Caffe"による演習付き
著者 武井宏将
ISBN 978-4-86594-022-0