僕の場合、RedHatが前提の業務用アプリの検証をするため、Caffeを検証するのはRedHat互換のCentOSのサーバーであることが都合よい。
そこでCaffeをCentOSにインストールしてみた。
結論から言うと、CentOS7へのインストールはとても苦労するができる。
苦労したくない人はUbuntu14.04以降にインストールをお勧めする。
#CentOS 6.6にCaffeをインストールした
結局インストール出来なかった。
さんざん苦労した挙句、Caffeのmake runtestを実行した時エラーが出る。
glogのエラーなのでglogを最新バージョンにしようとするがそのインストールに失敗する。どうにもならなかった。
#CentOS 7.0にCaffeをインストールした
Caffeインストールドキュメントが難解なので、とても苦労したが何とかインストール出来た。
以下にその方法を書こうと思う。
##必須ライブラリのインストール
Caffeインストールドキュメントから辿れるCentOS用Caffeインストールドキュメントによるとはじめに依存ライブラリをインストールするように指示しているが、リポジトリを追加しないとライブラリが見つからない。
以下のコマンドでリボジトリをインストールする。
# sudo yum install epel-release
その後インストールドキュメントに従って、
# sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel
# sudo yum install gflags-devel glog-devel lmdb-devel
と行う。
##BLASなどのインストール
Caffeインストールドキュメントが分かりにくく、何をインストールするかいまいちピンと来ないが、インストールドキュメントとCentOS用インストールドキュメントを見ていくと
・GPUを使うならば 「CUDA」を
・BLASは「ATLAS」「MKL」「OpenBLAS」のどれかを
インストールするらしい。
私はGPUは使わないので「CUDA」はインストールしていない。BLASは「ATLAS」をインストールしている。
【コマンド例】
# sudo yum install atlas*
##Caffe本体
Caffeインストールドキュメントに、Caffe本体のインストール方法が書いてない。方法はいくつかあるらしいが私はzipをダウンロードしてunzipで展開。
【ダウンロードURL】
https://github.com/BVLC/caffe/archive/master.zip
##Pythonのインストール
Caffeインストールドキュメントによると、PythonはANACONDAがおすすめらしいので、https://www.continuum.io/downloadsよりダウンロードしてインストールする。
上記リンクに行き、「Download for Linux」タブをクリック、Python2.7 Versionの64bit または 32bit のシステムに合った版をダウンロード。
# bash Anaconda2-4.2.0-Linux-x86_64.sh
でインストーラーを起動させる。
その後、必須ライブラリをインストールしていく。必須ライブラリのインストールは、まず必須ライブラリのための依存ライブラリをインストールし、その後必須ライブラリをインストールする。
必須ライブラリのインストールコマンドを実行させるために
- python-pip
が必要、さらに必須ライブラリのインストール時に依存ライブラリがないとエラーを起こすので、以下の依存ライブラリを予めインストールする。
- gcc
- gcc-c++
- gcc-gfortran
- libgfortran
- libpng-devel
- freetype-devel
- libjpeg-devel
- zlib-devel
【コマンド】
# sudo yum install gcc gcc-c++ gcc-gfortran libgfortran libpng-devel freetype-devel libjpeg-devel zlib-devel python-devel python-pip
続いて、PythonでCaffeを動かす上での必須ライブラリ群をインストールする。
ここはcaffeのインストールドキュメント通り
# cd ~/caffe/python/
# for req in $(cat requirements.txt); do sudo pip install $req; done
上記で ~/caffe というのは、caffe本体を展開したディレクトリなので、違う名前のディレクトリに展開した場合は注意が必要。
私は、caffe-masterというディレクトリ配下に展開したのでてこずった。
最後にパスを通す。これは実際にcaffeを起動させるユーザーで以下のコマンドを実行する。
$ export PYTHONPATH=[caffe本体展開ディレクトリ]/python:$PYTHONPATH
次回ログイン時に自動実行されるように、.bashrc にも上記コマンドを記述しておく。
##makefile.config作成
caffe本体を展開したディレクトリ配下にある makefile.config.example をmakefile.config という名前にコピーにして以下のように編集する。
GPUを使わないなら、
#CPU_ONLY := 1
を以下のようにアンコメントする。
CPU_ONLY := 1
CUDAを使わないなら、以下の文字から始まる行を、
CUDA_DIR.....
CUDA_ARCH.....
以下のようにコメントアウトする。
#CUDA_DIR.....
#CUDA_ARCH.....
BLASのインクルードファイルとライブラリのパス指定がディフォルトではコメントアウトされているので、アンコメントして、実際のパスを調べて記載する。以下はatlasをディフォルトでインストールした場合。(Ubuntuの場合このパス指定が必要ない。)
BLAS_INCLUDE := /usr/include/atlas
BLAS_LIB := /usr/lib64/atlas
##make
このままmakeを行うと、atlas関連のライブラリがないというエラーが出るので、以下のコマンドで、libtatlas.so を libcblas.so と読み替えする。
# cd /usr/lib64/atlas && ln -s libtatlas.so libcblas.so
caffeを動かすユーザでログイン。caffe本体を展開したディレクトリに移動して、caffeのmekeを行っていく。
$ make all
$ make test
$ make runtest
続いて、pycaffeのmake
$ make pycaffe
$ python
>>> import caffe
これで完了。
#ubuntuでもインストールしてみた
ubuntu14.04でもインストールしたが、その時は本当に楽にインストール出来た。
- リポジトリの登録の必要なし。
- makefile.configの編集が「#CPU_ONLY := 1」のアンコメントのみでよし。
- lnコマンド実行の必要なし。
- インストールドキュメントの指示以外で追加でインストールする依存ライブラリは、「python-dev python-pip python-numpy python-skimage gfortran」のみ。
CentOSだと苦労するというイメージを持った。