前回CUDA7が無事インストール出来たので、今回はCaffe本体をインストールする。hirotaka-hachiya.hatenablog.com
まずは、BLASをインストールする。
> sudo apt-get install libatlas-base-dev
次に、Caffeに関連するパッケージをインストールする。
> sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
次に、gitでCaffeをダウンロードする。
> sudo apt-get install git > git clone https://github.com/BVLC/caffe.git Cloning into 'caffe'... remote: Counting objects: 22617, done.
次に、ディレクトリcaffeに移動してmakeする。
> cp Makefile.config.example Makefile.config > make > make test > export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH > make runtest [----------] Global test environment tear-down [==========] 1080 tests from 190 test cases ran. (104821 ms total) [ PASSED ] 1080 tests. YOU HAVE 2 DISABLED TESTS
次は、Pythonのpipとapt-getを用いて必要なpythonモジュールをインストールし、pycaffeをコンパイルする。ちなみに、Anacondaを用いたコンパイルも試したが、いくつかのブログ(1、2)で紹介されているように、libm、libhdf5及びtiff4などのリンク問題があったので、お薦めしない。
追記:anacondaでは「make runtest」時に以下のエラーがでる。
.build_release/tools/caffe: error while loading shared libraries: libhdf5_hl.so.10: cannot open shared object file: No such file or directory
これは、LD_LIBRARY_PATHに、anaconda2/libを設定することにより解決する。例えば、.bashrcに以下を追加する。
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/home/hachiya/anaconda2/lib:$LD_LIBRARY_PATH
> sudo apt-get install python-pip > sudo apt-get install python-dev python-numpy python-scipy python-skimage > for req in $(cat python/requirements.txt); do sudo pip install $req; done > make pycaffe > export PYTHONPATH=~/caffe/python/:$PYTHONPATH
最後に、下記のページに沿って、学習済みのcaffenetのモデルを使って動作確認をした。
hirotaka-hachiya.hatenablog.com
具体的には、以下からダウンロードできるpythonコード(imagenet_visualize.py)を用いた。
https://drive.google.com/open?id=0B3uB4w2FEJbIbTIweEU2S2txWW8
実行結果は、次のようになっている。
> python imagenet_visualize.py Results: Top 1 Egyptian cat ( 285 ) , score= 0.30974 Top 2 lynx ( 287 ) , score= 0.276396 Top 3 tabby ( 281 ) , score= 0.14707 Top 4 grey fox ( 280 ) , score= 0.0897404 Top 5 tiger cat ( 282 ) , score= 0.0532915