LoginSignup
7
5

More than 5 years have passed since last update.

ubuntu14.04にCaffeもインストールする

Last updated at Posted at 2016-10-19

環境

GPU GTX1070
ubuntu 14.04
CUDA 8.0RC
cuDNN 5.1

これまでインストールしたパッケージ

chainer 1.14.0
TensorFlow
OpenAI Gym
Theano
など

はじめに

最近Caffeを使う必要が出てきたので、インストールを試みる。これまでUbuntu15や16にCaffeを入れたことはあったが、14.04は初めて。

TD72氏のこのサイト
http://qiita.com/TD72/items/bcb243ee02760ea1d8bb
に従って進める。

依存関係のインストール

現状、何がインストールされてて、何がされてないのか把握してないので、一括して入れてみる。

sudo apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

適当なディレクトリにCaffeをgit cloneする。

git clone https://github.com/BVLC/caffe.git

cuDNNの設定

cd caffe
cp Makefile.config.example Makefile.config

Makefile.configの5行目をアンコメントアウトする。

Makefile.config
USE_CUDNN :=1

コンパイル

CPUを4コア使って並列処理する。

make -j4 all

ここでなにやらエラーが出た。

CXX src/caffe/data_reader.cpp
PROTOC src/caffe/proto/caffe.proto
CXX src/caffe/util/db_leveldb.cpp
CXX src/caffe/util/insert_splits.cpp
CXX src/caffe/util/benchmark.cpp
src/caffe/data_reader.cpp:1:28: fatal error: boost/thread.hpp: そのようなファイルやディレクトリはありません
 #include <boost/thread.hpp>
                            ^
compilation terminated.
make: *** [.build_release/src/caffe/data_reader.o] エラー 1
make: *** 未完了のジョブを待っています....
src/caffe/util/benchmark.cpp:1:53: fatal error: boost/date_time/posix_time/posix_time.hpp: そのようなファイルやディレクトリはありません
 #include <boost/date_time/posix_time/posix_time.hpp>
                                                     ^
compilation terminated.
make: *** [.build_release/src/caffe/util/benchmark.o] エラー 1
In file included from ./include/caffe/util/db.hpp:6:0,
                 from ./include/caffe/util/db_leveldb.hpp:10,
                 from src/caffe/util/db_leveldb.cpp:2:
./include/caffe/common.hpp:4:32: fatal error: boost/shared_ptr.hpp: そのようなファイルやディレクトリはありません
 #include <boost/shared_ptr.hpp>
                                ^
compilation terminated.
make: *** [.build_release/src/caffe/util/db_leveldb.o] エラー 1
In file included from src/caffe/util/insert_splits.cpp:7:0:
./include/caffe/common.hpp:4:32: fatal error: boost/shared_ptr.hpp: そのようなファイルやディレクトリはありません
 #include <boost/shared_ptr.hpp>
                                ^
compilation terminated.
make: *** [.build_release/src/caffe/util/insert_splits.o] エラー 1

このサイトを参考にして、libboostとやらをインストールしてみる。
http://stackoverflow.com/questions/28867791/building-caffe-on-ubuntu-make-cant-find-boosts-include-files

sudo apt-get install --no-install-recommends libboost-all-dev

再度makeすると、今度は別のエラーが出た。

make -j4 all
CXX .build_release/src/caffe/proto/caffe.pb.cc
CXX src/caffe/data_reader.cpp
CXX src/caffe/util/db_leveldb.cpp
CXX src/caffe/util/insert_splits.cpp
In file included from ./include/caffe/util/db.hpp:6:0,
                 from ./include/caffe/util/db_leveldb.hpp:10,
                 from src/caffe/util/db_leveldb.cpp:2:
./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: そのようなファイルやディレクトリはありません
 #include <gflags/gflags.h>
                           ^
compilation terminated.
make: *** [.build_release/src/caffe/util/db_leveldb.o] エラー 1
make: *** 未完了のジョブを待っています....
In file included from src/caffe/util/insert_splits.cpp:7:0:
./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: そのようなファイルやディレクトリはありません
 #include <gflags/gflags.h>
                           ^
compilation terminated.
make: *** [.build_release/src/caffe/util/insert_splits.o] エラー 1
In file included from src/caffe/data_reader.cpp:6:0:
./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: そのようなファイルやディレクトリはありません
 #include <gflags/gflags.h>
                           ^
compilation terminated.
make: *** [.build_release/src/caffe/data_reader.o] エラー 1

gflagsどうたらこたら言ってるので、このサイト
https://github.com/BVLC/caffe/wiki/Ubuntu-14.04-ec2-instance
を参考に、以下を実行。

wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make 
sudo make install

この後再度makeを実行。またまた新たなエラーが出現。

make -j4 all
CXX src/caffe/data_reader.cpp
CXX src/caffe/util/db_leveldb.cpp
CXX src/caffe/util/insert_splits.cpp
CXX src/caffe/util/benchmark.cpp
In file included from ./include/caffe/util/db.hpp:6:0,
                 from ./include/caffe/util/db_leveldb.hpp:10,
                 from src/caffe/util/db_leveldb.cpp:2:
./include/caffe/common.hpp:6:26: fatal error: glog/logging.h: そのようなファイルやディレクトリはありません
 #include <glog/logging.h>
                          ^
compilation terminated.
make: *** [.build_release/src/caffe/util/db_leveldb.o] エラー 1
make: *** 未完了のジョブを待っています....
In file included from src/caffe/util/insert_splits.cpp:7:0:
./include/caffe/common.hpp:6:26: fatal error: glog/logging.h: そのようなファイルやディレクトリはありません
 #include <glog/logging.h>
                          ^
compilation terminated.
make: *** [.build_release/src/caffe/util/insert_splits.o] エラー 1
In file included from src/caffe/util/benchmark.cpp:3:0:
./include/caffe/common.hpp:6:26: fatal error: glog/logging.h: そのようなファイルやディレクトリはありません
 #include <glog/logging.h>
                          ^
compilation terminated.
make: *** [.build_release/src/caffe/util/benchmark.o] エラー 1
In file included from src/caffe/data_reader.cpp:6:0:
./include/caffe/common.hpp:6:26: fatal error: glog/logging.h: そのようなファイルやディレクトリはありません
 #include <glog/logging.h>
                          ^
compilation terminated.
make: *** [.build_release/src/caffe/data_reader.o] エラー 1

このサイトを見ると、glogはcaffeの公式インストールガイドにprerequisitesとして記載されてるとのこと。
https://github.com/BVLC/caffe/issues/885
確かに、確認するとそのとおり。

Caffeのインストールガイド
http://caffe.berkeleyvision.org/install_apt.html
の中にそれらしき項目があるので、実行。

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

再度、make -j4 allを実行。

make -j4 all
・・・・・
・・・・・
CXX/LD -o .build_release/examples/siamese/convert_mnist_siamese_data.bin
CXX/LD -o .build_release/examples/cifar10/convert_cifar_data.bin
CXX/LD -o .build_release/examples/mnist/convert_mnist_data.bin
CXX/LD -o .build_release/examples/cpp_classification/classification.bin

makeは成功したみたい。次はtest

make test

これも大丈夫っぽい。次はruntest

make -j4 runtest
・・・・・
・・・・・
[----------] Global test environment tear-down
[==========] 2081 tests from 277 test cases ran. (276632 ms total)
[  PASSED  ] 2081 tests.

全てのruntestが大丈夫だったみたい。

PythonでCaffeを使うための環境構築

念のため改めてpython系のパッケージ関係をインストール。

sudo apt-get install python-dev python-pip python-numpy python-skimage gfortran
・・・・・
・・・・・
以下の特別パッケージがインストールされます:
  fonts-lyx gfortran-4.8 libamd2.3.1 libcamd2.3.1 libccolamd2.8.0
  libcholmod2.1.2 libfreeimage3 libgfortran-4.8-dev libglade2-0
  libumfpack5.6.2 python-dateutil python-decorator python-glade2
  python-matplotlib python-matplotlib-data python-nose python-pyparsing
  python-scipy python-skimage-lib python-support python-tz
提案パッケージ:
  gfortran-multilib gfortran-doc gfortran-4.8-multilib gfortran-4.8-doc
  libgfortran3-dbg python-gtk2-doc dvipng inkscape ipython python-configobj
  python-excelerator python-matplotlib-doc python-tornado python-traits
  python-wxgtk2.8 ttf-staypuft python-coverage python-nose-doc python-opencv
  python-skimage-doc
以下のパッケージが新たにインストールされます:
  fonts-lyx gfortran gfortran-4.8 libamd2.3.1 libcamd2.3.1 libccolamd2.8.0
  libcholmod2.1.2 libfreeimage3 libgfortran-4.8-dev libglade2-0
  libumfpack5.6.2 python-dateutil python-decorator python-glade2
  python-matplotlib python-matplotlib-data python-nose python-pyparsing
  python-scipy python-skimage python-skimage-lib python-support python-tz
・・・・・

インストールされてないパッケージもあった。やってよかった。

次はpipで必要なライブラリのインストール

sudo pip install -r python/requirements.txt
・・・・・
・・・・・
  InsecurePlatformWarning
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

などとWarningが出た。versionの低いのインストールされたっぽい。言われた通り、upgradeする。

sudo pip install --upgrade pip
Successfully installed pip-9.0.1
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning

なんかWarningが出てるが、とりあえず無視。

コンパイルする。

make -j4 pycaffe

パスを通す
.bashrc
export PYTHONPATH=/PATH_TO_CAFFE/python/:$PYTHONPATH

最後に

python
>>>import caffe

でimportされてたので終了。

7
5
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
7
5