LoginSignup
10
5

More than 5 years have passed since last update.

CaffeをCPUモードでpyenvとAnacondaを使いUbuntu 14.04にインストールする

Last updated at Posted at 2016-06-24

 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の手順に従ってインストールします。OpenCVlibopencv-devだけcondaでインストールするので手順から除外します。

Protocol BuffersLevelDBSnappyHDF5をインストールします。

$ 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 

 gflagglogLMDBをインストールします。

$ 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のみ使うので以下をアンコメントします。

~/caffe/Makefile.config
CPU_ONLY := 1

 pyenvでインストールすると、ANACONDA_HOME$PYENV_ROOT/versions/anaconda2-4.0.0になります。PYTHON_INCLUDEPYTHON_LIBはコメントアウトしてAnacondaを使うようにします。
 

~/caffe/Makefile.config
#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
~/.bashrc
$ 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'
10
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
10
5