MacにCaffeをインストールした時の手順メモ (Ubuntu14.04使用)

この記事は、ディープラーニング初心者の私がMacbook Pro OSX 10.11 にディープラーニングフレームワーク[Caffe](http://caffe.berkeleyvision.org/)をインストールするまでの手順や参考にしたサイトをそのまま記載したものです。
もしかしたら無駄な作業があるかもしれませんが、ご了承ください。

## 方針
CaffeをMacにそのままインストールするのは大変という噂を聞いたので...
今回は[Linux](http://e-words.jp/w/Linux.html)ベースの[OS](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)である[Ubuntu](https://www.ubuntulinux.jp/)にCaffeをインストールしたいと思います。MacにUbuntusを入れるためには、[VirtualBox](https://www.virtualbox.org/)を使って[仮想環境](http://e-words.jp/w/%E4%BB%AE%E6%83%B3%E5%8C%96%E7%92%B0%E5%A2%83.html)を準備するといいらしいので、最初にそれをインストールします。

順番としては

+ MacにVirtualBoxをインストールする
+ VirtualBoxで仮想環境にUbuntu14.04をインストールする
+ Ubuntusを起動し、Caffeをインストールする

となります。

# MacにVirtualBoxをインストールする

## Virtualbox をダウンロードする。
[このサイト](https://www.virtualbox.org/wiki/Downloads)からダウンロードします。
ダウンロード&インストール手順は下のリンクのサイトを参考にしました。
[MacにVirtualBoxをインストールしてみた](http://pc-karuma.net/mac-virtualbox-install/)

# VirtualBoxで仮想環境にUbuntu14.04をインストールする

## Ubuntu14.04をダウンロードする

http://www.ubuntulinux.jp/download/ja-remix
からダウンロードしました。
![image](https://qiita-image-store.s3.amazonaws.com/0/96970/a6b3a24f-e8ee-390e-97a2-4c44d96c62f3.png)


## VirtualboxにUbuntuをインストールする。

このサイトを参考にしました。作業は一直線です。
[VirtualBoxにUbuntuをインストールしてみる](http://d.hatena.ne.jp/yk5656/20140310/1394894130)

## Ubuntuを快適に使うためのTips
Ubuntuは何も設定していないと非常に使いにくいです。ということで快適に使うために参考にしたサイトを紹介します。

Guest AdditionsのInsert→画面サイズを変えられるようになるらしい
http://www.linuxmania.jp/virtualbox_02.html

**Ubuntuにログインできなくなった時の対処法**
[Ubuntu14.04にCUDA Toolkit or NVIDIAグラフィックスドライバを入れるとGUI環境でログインできなくなる問題について](http://www.rokudw.net/archives/66)
このサイトを見つけるのが大変だったので強調しておきたいです。

Google Chromeをダウンロード
firefoxで検索する。

日本語入力問題
[Ubuntu 14.04 Mozc で日本語入力設定](http://zaka-think.com/linux/ubuntu/ubuntu-14-04-mozc-setting/)

コピー＆ペーストの設定
[Mac の VirtualBox 上で Ubuntu を快適に使う Tips](http://blog.akagi.jp/archives/3599.html)

[【初心者向け】Ubuntuをインストールして最初にすること【個人的な設定9項目】](http://zaka-think.com/linux/ubuntu/ubuntu%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E6%9C%80%E5%88%9D%E3%81%AB%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8/)
こういったサイトをいくつか見ておくといいかもしれません。

# Ubuntusを起動し、Caffeをインストールする
この2つのサイトを参考にしました。
[Ubuntu 14.04 上での Caffe の導入手順メモ](http://www.nal.ics.es.osaka-u.ac.jp/personal/k-yamanishi/CaffeUbuntu.html)
[Ubuntu14.04にCaffeをインストール(CPUモード)](http://qiita.com/TD72/items/1bab76e395243defcc06)

## ターミナル(端末)を起動する

とりあえず最初に

```
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install vim
```
と下準備する。
1 CUDA とBLAS のインストール
(追記) CUDAはGPUモードで行いたい場合にインストールする。CPUモードのみの使用の場合は必要ない。

```
$ sudo apt-get install nvidia-cuda-toolkit #GPUモードで必要
$ sudo apt-get install libatlas-base-dev
```


2 The rest of the dependencies のインストール

```
$ 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
```
3 Caffe 本体の設定
3.1 Caffe のダウンロード

caffeのライブラリを保存したいディレクトリに移動してから

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

```
$ cd caffe
$ cp Makefile.config.example Makefile.config
$ vi Makefile.config
```
ここでviエディタを起動して、Makefile.configの中身を書き換える。
viエディタの使い方が初めての人には難しいと思うので下のようなサイトで予習するといいかもしれません。
[今から１分で，viコマンドの使い方を覚えてもらうためのページ](http://language-and-engineering.hatenablog.jp/entry/20121207/p1)

```vim:Makefile.config
#8行目をアンコメントアウト
# CPU_ONLY := 1
↓
CPU_ONLY := 1

#25行目をアンコメントアウトしてバージョンを指定
# CUSTOM_CXX := g++ 
↓
CUSTOM_CXX := g++-4.6

#28行目。おそらく変えたほうが良い。バージョンに合わせる。lsで確認を。
CUDA_DIR := /usr/local/cuda
↓
CUDA_DIR := /usr/local/cuda-7.0
```

ここでコンパイルするも、うまくいかなかったので、先ほどのサイトを見て、コマンドを追加で打ち込む。

```
$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_amd64.deb #CPU_ONLYならいらない
$ sudo dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb #CPU_ONLYならいらない
$ sudo apt-get update #多分いらない
$ sudo apt-get install cuda #CPU_ONLYならいらない
$ sudo apt-get install g++-4.6 #これ大事
```

## コンパイル

準備ができたらコンパイルする。caffeディレクトリに移動して

```
$ make all
$ make test
$ make runtest
```
としてエラーが出なければ成功。

コンパイルが成功したら

```
$ sudo apt-get install python-pip
$ sudo apt-get install gfortran
$ sudo pip install -r ~/caffe/python/requirements.txt

#(caffe/python上で)

$ for req in $(cat requirements.txt); do sudo pip install $req; done
$ sudo apt-get install python-dev python-numpy python-skimage
```
```
#($/caffe上で)
$ make pycaffe
```
```
$ vi ~/.bashrc
```

```vim:~/.bashrc
#適当なとこに書く
export PYTHONPATH=~/caffe/python/:$PYTHONPATH
```
```
$ source ~/.bashrc
```
Pythonを起動してimport caffeとうつ。

```
$ python
>>> import caffe
```
エラーが出なければ終了です！お疲れ様でした！