CaffeをクラウドにインストールするときはGPUクラウドを使うと高速に動作しますが、GPUやCUDAがない環境でもCPUだけで動作するモードでビルドすることができます。今回はIDCFクラウドのUbuntu 14.04にインストールしてみます。
準備
最初にbuild-essentialなどインストールして環境を準備します。
$ sudo apt-get update
$ sudo apt-get update
$ sudo apt-get install -y build-essential
$ sudo apt-get install -y git vim
pyenvとAnaconda
AnacondaはPythonでデータ分析をするときによく使うパッケージをまとめてインストールすることができます。Python環境を構築するときは、pyenvなどのバージョン管理ツールを使うとシステムのPythonと分離できるので安心です。データサイエンティストを目指す人のpython環境構築 2016を参考にしてインストールしていきます。
pyenvをインストールします。
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
Python 2.7のAnacondaを調べます。最新版はanaconda2-4.0.0です。
$ pyenv install -l | grep anaconda2
anaconda2-2.4.0
anaconda2-2.4.1
anaconda2-2.5.0
anaconda2-4.0.0
Anacondaをインストールしてグローバルに設定します。
$ pyenv install anaconda2-4.0.0
$ pyenv rehash
$ pyenv global anaconda2-4.0.0
pyenvとanacondaを共存させる時のactivate衝突問題の回避策3種類から、activateをフルパスで実行する方法を使います。
$ echo 'alias activate="source $PYENV_ROOT/versions/anaconda2-4.0.0/bin/activate"' >> ~/.bashrc
$ source ~/.bashrc
Python 2.7.11がインストールされました。
$ python
Python 2.7.11 |Anaconda 4.0.0 (64-bit)| (default, Dec 6 2015, 18:08:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>>
必要なパッケージ
CaffeのUbuntu Installationの手順に従ってインストールします。OpenCVのlibopencv-dev
だけcondaでインストールするので手順から除外します。
Protocol Buffers、LevelDB、Snappy、HDF5をインストールします。
$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
OpenCVはlibopencv-devをapt-getでインストールするとPyCaffeがFailed to initialize libdc1394P
のエラーを出すので、condaからインストールします。
$ conda install opencv
$ conda list opencv
opencv 2.4.10 np110py27_1
OpenCVは2.4.10がインストールされました。チャンネルはBinstarでなくても良いみたいです。
BoostとCaffeのデフォルトのBLASのATLASをインストールします。condaからインストールすることもできます。
$ sudo apt-get install -y --no-install-recommends libboost-all-dev
$ sudo apt-get install -y libatlas-base-dev
$ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
インストール
Caffeはホームディレクトリ直下にインストールします。
$ git clone https://github.com/BVLC/caffe.git ~/caffe
$ cd ~/caffe
Makefile.configを作成して編集します。
$ cp Makefile.config.example Makefile.config
GPUを使わずCPUのみ使うので以下をアンコメントします。
CPU_ONLY := 1
pyenvでインストールすると、ANACONDA_HOME
は$PYENV_ROOT/versions/anaconda2-4.0.0
になります。PYTHON_INCLUDE
とPYTHON_LIB
はコメントアウトしてAnacondaを使うようにします。
#PYTHON_INCLUDE := /usr/include/python2.7 \
# /usr/lib/python2.7/dist-packages/numpy/core/include
ANACONDA_HOME := $(PYENV_ROOT)/versions/anaconda2-4.0.0
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include
#PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib
Caffeのビルド中にlibgtk-x11-2.0.so.0
が見つからないのでこちらを参考にインストールしておきます。
$ sudo apt-get install libgtk2.0-0
$ echo "export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$PYENV_ROOT/versions/anaconda2-4.0.0/lib" >> ~/.bashrc
$ source ~/.bashrc
ビルド
Caffeをビルドします。CPUのコア数に応じてビルド時のスレッド数を変更します。今回は4コアなので-j4
を追加します。
$ make all -j4
$ make test -j4
$ make runtest
make runtest
を実行してCaffeのインストールを確認します。
PyCaffe
CaffeのPythonインターフェースのPyCaffeをビルドします。最初に必要なパッケージをpipでインストールしてからmakeします。
$ cd ~/caffe
$ pip install --upgrade pip
$ pip install -r ./python/requirements.txt
$ make pycaffe -j4
$ make pytest
PyCaffeはパッケージからインストールしていないので、PYTHONPATHを追加します。
$ echo "export PYTHONPATH=$PYTHONPATH:$HOME/caffe/python" >> ~/.bashrc
$ source ~/.bashrc
import caffe
でエラーが出なければインストール成功です。
$ python -c 'import caffe'