A certain engineer "COMPLEX"

ディープラーニング Caffe その1 環境構築

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 をインストールします

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


sudo apt-get install libatlas-base-dev

2. Boost


sudo apt-get install libboost-all-dev

3. protobuf


sudo apt-get install libprotobuf-dev

4. glog


sudo apt-get install libgoogle-glog-dev

5. gflags


sudo apt-get install libgflags-dev

6. hdf5


sudo apt-get install libhdf5-serial-dev

7. git


sudo apt-get install git

8. g++ 4.6


sudo apt-get install g++-4.6

9. protobuf-compiler


sudo apt-get install protobuf-compiler

10. OpenCV


sudo apt-get install libopencv-dev

11. leveldb


sudo apt-get install libleveldb-dev

12. lmdb


sudo apt-get install liblmdb-dev

13. snappy


sudo apt-get install libsnappy-dev

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

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


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

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


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

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


# CPU_ONLY := 1

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


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

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


CUDA_DIR := /usr/local/cuda

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


# CUDA_DIR := /usr

16. caffe本体のコンパイル


make
make test
make runtest

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

Python

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

1. Python


sudo apt-get install python-dev

2. pip


sudo apt-get install python-pip

3. numpy


sudo apt-get install python-numpy

4. skimage


sudo apt-get install python-skimage

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


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

6. pycaffeのコンパイル


cd /usr/local/caffe/
make pycaffe

7. 環境変数の設定


sudo gedit ~/.bashrc

最終行に


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

を追加します


source ~/.bashrc

7. importのテスト


python
import caffe

ここで、

libdc1394 error: Failed to initialize libdc1394

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


sudo ln /dev/null /dev/raw1394

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

Conclusion


不慣れなLinuxで時間がかかりましたが、これで環境の構築は完了です。

次回は実際に使えたらな、と思います。

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。