いつもの作業の備忘録

作業を忘れがちな自分のためのブログ

【Caffe】Ubuntu 14.04へのインストール

インストールしたばかりのUbuntu 14.04にCaffeを導入し、Pythonでcaffeをimportできるのを確認するまでの過程

1.cuDNNのディベロッパ登録

以下のサイトからcuDNNディベロッパメンバーに登録
 https://developer.nvidia.com/cudnn ※私の場合は翌日に登録完了しました

2.Nvidiaドライバ、CUDA Toolkit、cuDNN、Anacondaダウンロード

私はこれらをホームディレクトリ下のwork/dl_toolsにダウンロードしました。

3.Nvidiaドライバ、CUDA Toolkitのインストール

事前に必要なもののインストール

$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa-dev
$ sudo apt-get install linux-source
$ sudo apt-get install linux-headers-$(uname -r)

以下の手順に従ってCUIモードに移行(Xが立ち上がっているとインストールできないため)
http://punyo-er-met.hateblo.jp/entry/2016/02/27/121717

本体のインストール

$ cd work/dl_tools/
$ chmod +x NVIDIA-Linux-x86_64-361.28.run 
$ chmod +x cuda_7.5.18_linux.run 
$ sudo ./NVIDIA-Linux-x86_64-361.28.run 
$ ./cuda_7.5.18_linux.run 

CUDA Toolkitのインストール中、いろいろ聞かれるので以下のように回答

Do you accept the previously read EULA? (accept/decline/quit): accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): y
Do you wish to run the installation with 'sudo'? ((y)es/(n)o): y
Do you want to install the OpenGL libraries? ((y)es/(n)o/(q)uit)[ default is yes ]: y
Install the CUDA 7.5 Toolkit? ((y)es/(n)o/(q)uit): y
Enter Toolkit Location [ default is /usr/local/cuda-7.5 ]: 
Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y
Install the CUDA 7.5 Samples? ((y)es/(n)o/(q)uit): y
Enter CUDA Samples Location [ default is /home/**** ]: /home/****/work/dl_tools


再度以下の手順でGUIモードに復帰
http://punyo-er-met.hateblo.jp/entry/2016/02/27/121717

パスの設定ファイルを開く

$ vim ~/.profile

以下の内容をファイルの最後に追加

export PATH=$PATH:/usr/local/cuda-7.5/bin
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
export CUDA_ROOT=/usr/local/cuda-7.5/bin

変更内容を反映

$ source .profile

4.周辺ライブラリの導入

CuDNNインストール

$ cd ~/work/dl_tools
$ tar -zxf cudnn-7.0-linux-x64-v4.0-prod.tgz 
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp cuda/lib64/* /usr/local/cuda/lib64/

Anacondaのインストール

$ cd ~/work/dl_tools
$ bash Anaconda2-2.5.0-Linux-x86_64.sh 

anacondaをインストールする場所を聞かれるので適当に設定する

BLASのインストール(今回はATLAS)

$ sudo apt-get install libatlas-base-dev

依存ライブラリのインストール

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

5.Caffeのダウンロードとmake

caffeのダウンロード

$ sudo apt-get install git
$ git clone https://github.com/BVLC/caffe.git

caffeのコンパイル必要なMakefile.configを作る
Makefile.config.exampleを参考にMakefile.configを作成する)

$ cd caffe
$ cp Makefile.config.example  Makefile.config
$ vim Makefile.config

Makefile.configの以下の行を変更

変更前

#USE_CUDNN := 1
・・・
PYTHON_INCLUDE := /usr/include/python2.7 \
                /usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
# 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

変更後

USE_CUDNN := 1
・・・
#PYTHON_INCLUDE := /usr/include/python2.7 \
                /usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := $(HOME)/work/dl_tools/anaconda2
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

make実行

$ make all
$ make test
$ sudo cp /usr/lib/x86_64-linux-gnu/libhdf5_hl.so.7 /usr/lib/x86_64-linux-gnu/libhdf5_hl.so.10
$ sudo cp /usr/lib/x86_64-linux-gnu/libhdf5.so.7 /usr/lib/x86_64-linux-gnu/libhdf5.so.10
$ make runtest

6.PyCaffeの導入

必要なライブラリのpipによるインストール

$ sudo apt-get install python-pip
$ cd ~/work/dl_tools/caffe/python
$ for req in $(cat requirements.txt); do sudo pip install $req; done
$ sudo apt-get install python-dev python-numpy python-skimage
$ cd ~/work/dl_tools/caffe/

パスの設定

$ vim ~/.profile

ファイルの末尾に以下を追加

export PYTHONPATH=~/work/dl_tools/caffe/python/:$PYTHONPATH

ファイルを更新し、PyCaffeをmake

$ source ~/.profile
$ make pycaffe

pythonを起動し、import caffeがエラーなく通れば動作確認完了!
ここまででCaffeインストール完了!

もし、protobufが無いとエラーが出れば以下で治るかもしれない

$ sudo apt-get install python-protobuf
$ pip install protobuf


※参考
http://www.nal.ics.es.osaka-u.ac.jp/personal/k-yamanishi/CaffeUbuntu.html
http://wiki.ruka-f.net/index.php?Caffe%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
https://groups.google.com/forum/#!topic/caffe-users/9Q10WkpCGxs