Ry0 Note

技術系SONEノート

UbuntuにCaffeをインストールする

インストールがけっこう大きな関門だったり

Ubuntu 14.04にCPU OnlyとCUDA、cuDNNを使う両方の方法を書いてます

今日はディープラーニングのフレームワークCaffeのインストール方法のメモです。 最初の環境整備で躓く場合が多いので、詳しく書いておきます。 2015/8/15の段階で問題なくインストールできたことを確認しています。Caffeがバージョンアップするとインストール方法も変わるかもしれません。

前準備

ビルドに必要な最低限のツールをインストールします。これは何かのときにインストールされているかもしれません。

1
sudo apt-get install build-essential

続いて依存関係で必要なパッケージをインストールします。

1
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml
1
sudo easy_install pillow

CUDAとcuDNNを使う

これに関してはNVIDIAのグラフィックボードがPCに搭載されている場合は、試してみてください。学習の速度が目に見えて向上します。

Ubuntu 14.04にCUDA 7.0とcuDNNを導入する

本家レポジトリからCaffeをCloneしてくる

cloneする場所はどこでもいいですが、いつもプログラムを保存しているところとかがいいでしょう。そこのディレクトリまでcdしてきて以下のコマンドを実行します。

1
2
git clone https://github.com/BVLC/caffe.git
cd caffe

Python caffeを実行するために必要なパッケージをインストール。 ディレクトリは先ほどcdしたcaffeで行う。

1
cat python/requirements.txt | xargs -L 1 sudo pip install

シンボリックリンクを作成

1
2
sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7
sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy

Makefile.configを作成し、Geditで編集します。エディタは自由です。

1
2
cp Makefile.config.example Makefile.config
gedit Makefile.config

CPUのみを使う場合

CPUのみを使う場合はこの手順を行ってください。NVIDIAのライブラリを使用するつもりがある人は次のセクションに行ってください。
8行目の#を外して

1
2
3
4
5
6
7
8
## Refer to http://caffe.berkeleyvision.org/installation.html
# Contributions simplifying and improving our build system are welcome!

# cuDNN acceleration switch (uncomment to build with cuDNN).
# USE_CUDNN := 1

# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1

以下のように変更します。

1
CPU_ONLY := 1

CUDAとcuDNNを使う場合

CPUオンリーでCaffeを使う場合ここの作業は必要ありません。
5行目のコメントアウトを外す.

1
2
# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1

15行目のコメントアウトを外す。CUDA 7.0を上のリンクで入れた場合、ここを外しました。

1
2
# CUDA directory contains bin/ and lib/ directories that we need.
CUDA_DIR := /usr/local/cuda

共通の作業

CPUのみを使用する場合、NVIDIAのライブラリを使用する場合、どちらのときもここの作業は共通で行います。
また52行目を以下のように編集。これを

1
2
3
4
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
    /usr/lib/python2.7/dist-packages/numpy/core/include

以下に変更。 /localを追加。

1
2
3
4
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
    /usr/local/lib/python2.7/dist-packages/numpy/core/include

caffeをコンパイル

-j4等のオプションは対応するCPUのスレッド数に応じて適宜変更してください。

1
2
3
make pycaffe -j4
make all -j4
make test -j4

特にエラーなく処理が終わるとCaffeのインストール作業は終了です。最後に.bashrcにPython Caffeの場所を教えておきます。

1
2
## caffe
export PYTHONPATH=$PYTHONPATH:$HOME/Documents/caffe/python

これは一例です。自分がcloneしてきた場所に合わせて変更してください。

OpenCVをインストール

Caffeを使っていく上で、OpenCVをインストールしておきます。 OpenCVのインストールはどんな方法でもいいですが、面倒な人は下のレポジトリでスクリプトファイルがあるのでREADMEを見ながら実行してインストールしてください。

おわりに

ひと通りCaffeの準備がそろったので、今度はデータセット作りについての記事を書いていこうと思います。