codecademy でのPythonの学習が完了し、そのことを会社で伝えたら、ディープラーニングの Caffe を使ったプロジェクトに参加させられることになりました。
どうしてこうなった。

Caffe

更新 (2017/04/23)
ディープラーニング Caffe その3 環境構築 with GPUにて、GeForce GTX 750 Tiを使った環境構築方法をについて説明しています。

オープンソースで開発が進んでいるディープラーニングのフレームワークです。
非常に強力ですが、環境構築が手間だと専らの話。
Windows版なんかあるはずがありません。
(非公式のWindows版が公式で紹介されています。)

環境構築

Ubuntu

というわけで、会社と同じ環境である Ubuntu 14.0.4 LTS Desktop 64bit をHyper-Vに用意しました。
インストールは特に問題ないです。GUIですし、選択肢も少なく優秀です。

デスクトップ画面

Hyper-Vマシン前で作業するのは面倒なので、VNC経由で使えるようにします。
ここでかなり手間取りました。

VNCの許可

  1. ターミナルから下記のコマンドで dconf-editor をインストールします
1
sudo apt-get install dconf-tools 
  1. メニューから dconf-editor を呼び出します。

dconf-editor

  1. 左のノードから org > gnome > desktop > remote-access と進めます。enabled にチェック、require-encryption のチェックを外します。。

dconf-editor2

  1. メニューから Desktop Sharing を呼び出します。検索語は Vino です。

  2. You must confirm each access to this machine を外します。オプションで Show Notification Area IconAlways に変更します。

以上でVNCを利用できるようになります。
VHDのデータをこの時点で対比しておくと、環境をリセットしたいとき楽です。
Hyper-Vのチェックポイント機能がありますが、VHD一つ保存しておくだけで複製も楽ですので、私はこっちのが好みです。

Caffeの導入

公式サイトの導入指示 では、 必須の依存ライブラリ

  • CUDA (GPUモードで使う場合)
    • バージョン7以降の最新バージョン推奨。ただし、6系も良し。
    • 5.5と5.0は互換性はあるが、レガシーです
  • ATLAS、MKLまたはOpenBLAS
  • Boost (1.55以降)
  • protobuf
  • glog
  • gflags
  • hdf5

オプションの依存ライブラリ

  • OpenCV (3.0を含む2.4以降の)
  • lmdb
  • leveldb (snappyが必要)
  • cuDNN

Pycaffe と Matcaffe のインターフェース利用に必要なもの

  • Python Caffe
    • Python (2.7または3.3以降)
    • numpy (1.7以降)
    • boost.python
    • lmdb
  • MATLAB Caffe
    • MATLAB (mexコンパイラ付き)

とのことなので指示に従いますが、実際作業中はオプションのものが必要になったりしました。
GPUは使わないので、CUDAは無視します。

1. ATLAS

1
sudo apt-get install libatlas-base-dev

2. Boost

1
sudo apt-get install libboost-all-dev

3. protobuf

1
sudo apt-get install libprotobuf-dev

4. glog

1
sudo apt-get install libgoogle-glog-dev

5. gflags

1
sudo apt-get install libgflags-dev

6. hdf5

1
sudo apt-get install libhdf5-serial-dev

7. git

1
sudo apt-get install git

8. g++ 4.6

1
sudo apt-get install g++-4.6

9. protobuf-compiler

1
sudo apt-get install protobuf-compiler

10. OpenCV

1
sudo apt-get install libopencv-dev

11. leveldb

1
sudo apt-get install libleveldb-dev

12. lmdb

1
sudo apt-get install liblmdb-dev

13. snappy

1
sudo apt-get install libsnappy-dev

14. caffe本体のダウンロード

gitのクローン先はどこでもいいです。

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

15. caffe本体のコンパイル準備

1
cd caffe cp Makefile.config.example Makefile.config sudo gedit Makefile.config

下記のコメント行を有効化

1
# CPU_ONLY := 1

下記のコメント行の直下に追加

1
# CUSTOM_CXX := g++ CUSTOM_CXX := g++-4.6

下記の行をコメントアウト

1
CUDA_DIR := /usr/local/cuda

下記のコメント行を有効化

1
# CUDA_DIR := /usr

16. caffe本体のコンパイル

1
make make test make runtest

エラーが出ずに終了すれば構築は完了です。

Python

Pythonから使いたい場合は、もうひとがんばりです。

1. Python

1
sudo apt-get install python-dev

2. pip

1
sudo apt-get install python-pip

3. numpy

1
sudo apt-get install python-numpy

4. skimage

1
sudo apt-get install python-skimage

5. 依存パッケージのダウンロード

1
cd /usr/local/caffe/python for req in $(cat requirements.txt); do sudo pip install $req; done

6. pycaffeのコンパイル

1
cd /usr/local/caffe/ make pycaffe

7. 環境変数の設定

1
sudo gedit ~/.bashrc

最終行に

1
export PYTHONPATH=/usr/local/caffe/python/:$PYTHONPATH

を追加します

1
source ~/.bashrc

7. importのテスト

1
python import caffe

ここで、

libdc1394 error: Failed to initialize libdc1394

と表示されますが、これ以外のエラーがなければ問題ないようです。
stackoverflow で、この問題の簡単な解決策が提示されていました。

1
sudo ln /dev/null /dev/raw1394

でエラーが消えるようです。

Conclusion

不慣れなLinuxで時間がかかりましたが、これで環境の構築は完了です。
次回は実際に使えたらな、と思います。