LoginSignup
2
7

More than 5 years have passed since last update.

Caffeをインストールしてサンプルを動かすまで

Last updated at Posted at 2016-11-20

画像認識に定評のあるライブラリ・Caffeを使ってみたくなり、
インストールしてサンプル(mnist)を動かすまでの手順をまとめてみました。

セットアップ環境は以下の通りです。

  • OS: Ubuntu 16.04.1 LTS
  • GPUドライバ: NVIDIA 367.57

1.外部ライブラリのインストール

必要なライブラリの一式をインストールします。

~
$ sudo apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler git

2.Caffeのダウンロード

gitからCaffeのソースをダウンロードします。

~
$ git clone https://github.com/BVLC/caffe.git
$ cd caffe

3.設定ファイルの編集

まずはコンパイル用のmakeファイルを作成します。

caffe/
$ cp Makefile.config.example Makefile.config

このままコンパイルするといくつかのエラーが発生したので、
それを回避するために設定ファイルをいくつか書き換えます。

3.1.hdf5まわり

"can't find hdf5.h"などと言われた場合は、
まずlibhdf5-devをapt-getしたか確認しましょう。

インストールされているのにエラーを吐く場合は、
Makefile.configのINCLUDE_DIRSを修正します。

caffe/Makefile.config
#INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

3.2.cudaまわり

次に、"/usr/local/cuda/bin/nvcc: not found"と言われた場合は、
Makefile.configのCUDA_DIRを修正します。

caffe/Makefile.config
#CUDA_DIR := /usr/local/cuda
CUDA_DIR := /usr

3.3.memcpyまわり

memcpyまわりでエラーを吐いた場合には、caffe/MakefileのNVCCFLAGSを以下のように修正します。(Makefile.configではないです。紛らわしい)

caffe/Makefile
#NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

3.4.lhdf5まわり

"/usr/bin/ld: -hdf5_hl が見つかりません"と言われたときは、
/usr/lib/x86_64-linux-gnuの中にシンボリックリンクを貼ります。

/usr/lib/x86_64-linux-gnu
$ cd /usr/lib/x86_64-linux-gnu
$ sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
$ sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

4.コンパイル

ここまで来れば、必要な設定は大体終わったはずです。
コンパイルして、テストをしてみましょう。

caffe
$ make
$ make runtest

runtestの結果がPASSEDとなれば、Caffeのインストールが完了です。

passed.png

5.サンプルのテスト

caffeはデフォルトで学習用のスクリプト一式が入っています。

なので、あとはスクリプトを順々に叩くだけでサンプルが動かせます。

まずはmnistのデータをダウンロードし、変換しましょう。

caffe/
$ data/mnist/get_mnist.sh
$ examples/mnist/create_mnist.sh

学習用データが手に入ったので、モデルを学習させます。

caffe/
$ examples/mnist/train_lenet.sh

最後に、学習済みモデルを利用して、mnistのテストを実行します。

caffe/
$ ./build/tools/caffe test -model ./examples/mnist/let_train_test.prototxt -weights ./examples/mnist/lenet_iter_10000.caffemodel

ここまでで一通りCaffeを動かすことが出来ました。

参考文献

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7