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の許可
- ターミナルから下記のコマンドで dconf-editor をインストールします
1 | sudo apt-get install dconf-tools |
- メニューから dconf-editor を呼び出します。
- 左のノードから org > gnome > desktop > remote-access と進めます。enabled にチェック、require-encryption のチェックを外します。。
メニューから Desktop Sharing を呼び出します。検索語は Vino です。
You must confirm each access to this machine を外します。オプションで Show Notification Area Icon を Always に変更します。
以上で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で時間がかかりましたが、これで環境の構築は完了です。
次回は実際に使えたらな、と思います。