caffe2

Caffe2をインストールしたった

caffeが進化したcaffe2なるものがあるらしいので、導入するまでを書いていきます。
環境はMac上でDockerを使ってubuntu16を使ってます。
流れは公式ページに沿っていきます。
https://caffe2.ai/docs/getting-started.html?platform=ubuntu&configuration=compile

Caffe2のダウンロード

まずはgitからcaffe2のディレクトリをクローンします。これはローカル上で行います。

git clone --recursive https://github.com/caffe2/caffe2.git

パッケージのインストール

次に必要なパッケージをインストールしていきます。ここからはdocker上で行います。

sudo apt-get update
sudo apt-get install -y --no-install-recommends \
      build-essential \
      cmake \
      git \
      libgoogle-glog-dev \
      libgtest-dev \
      libiomp-dev \
      libleveldb-dev \
      liblmdb-dev \
      libopencv-dev \
      libopenmpi-dev \
      libsnappy-dev \
      libprotobuf-dev \
      openmpi-bin \
      openmpi-doc  \
      protobuf-compiler \
      python-dev \
      python-pip                          
sudo pip install \
      future \
      numpy \
      protobuf

# for Ubuntu 14.04
sudo apt-get install -y --no-install-recommends libgflags2
# for Ubuntu 16.04
sudo apt-get install -y --no-install-recommends libgflags-dev

コンパイル

次にコンパイルします。まずcaffe2に移動して、

cd caffe2

makeでコンパイルします。

make all -j16

これが終わったらbuildができているので移動します。

cd build

あとはするだけです。

make install

最後にちゃんとcaffe2が入っているか下記のコマンドで確認します。Successが出ればおkです。

/home/nagayosi/caffe2/build $ python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
Success

ただしこれだけでは、caffe2/build以外の場所にいる時にFailureになってしまうので、

/home/usrs/nagayosi/caffe2 $ python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
Failure
/home/usrs/nagayosi/caffe2 $ 

これを解決するために、.bashrcファイルに以下を記述します。

/home/nagayosi/caffe2/build $ cd ../../
/home/nagayosi/ $ vi ~/.bashrc
.bashrc
export PYTHONPATH=`pwd`/caffe2/build:$PYTHONPATH

そしてsourceで変更を反映させます。

/home/nagayosi $ source ~/.bashrc

この操作によって、caffe2/build以外でもSuccessになります。

/home/usrs/nagayosi $ python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
Success
/home/usrs/nagayosi $

これでインストールは完了です!!

今後は使い方追加していく予定です。

Makeエラー

caffe2に移動してからmakeする時に

/caffe2/caffe2/core/common_cudnn.h(31): error: static assertion failed with "Caffe2 requires cudnn version 5.0 or above."

というエラーで出ることがある。これはcudnnのバージョンによるもので、どうやらcudnn6.0以上が必要らしいので、インストールして下さい。