A Deep Learning Framework: Caffe リンク集

Caffeは昨今流行りのディープラーニングフレームワークの1つです。

Caffe | Deep Learning Framework

 

 

有名な他のフレームワークとして、ChainerやTensorflowというものがあります。

Caffeの特徴は学習済みのモデルが多数配布されていること、教師データのデータベースの作成がとても簡単(例えば画像データ群と、画像へのパスとカテゴリの列挙されたテキストデータがあればOK)であるということです。

Caffeで始めるディープラーニング

 

 

管理者権限の無いリモートのCentOS6マシンでビルドおよびPython Bindingを利用するに当たって、かなり手こずりました。以下の記事を参考にしました。

ディープラーニングライブラリBVLC/Caffeを管理者権限rootなしでインストールした時のメモ集 - Qiita

 

 

僕の場合は、すでに管理者権限でインストールされたものが多く

 

・Anacondaのインストール+要求モジュールをpipで導入

・Anacondaのpythonの実行バイナリを指定してBoostライブラリをビルド

Makefile.configを書く(CMakeは使わない)

 

の、だいたい3ステップでできました。

 

 

PythonはAnacondaを用いました。僕は自力で頑張りましたが、OSのPythonやライブラリ群とコンフリクトしないようにconda+pyenvを使うのが良いらしいです。

データサイエンティストを目指す人のpython環境構築 2016 - Qiita

 

 

3D-FCNを用いた論文手法をCaffeで実装するというタスクに取り組んでいます。Caffeは割と画像処理に特化しているので高次元のCNNについては情報が少ないです。またバージョンによって仕様が変わることも多いでしょう。

 

 

参照しているページを列挙します。

 

 

N次元の畳み込みは実装されているようです。

ND convolution with im2col by jeffdonahue · Pull Request #2049 · BVLC/caffe · GitHub

任意次元の教師データにはHDF5形式を用いる必要がある(?)ようです。

Caffeの3D-CNNを使ったダミーデータの学習 - Qiita

 

 

損失関数の形が特殊なので自作のPython Layerを書いています。

caffe/pyloss.py at master · BVLC/caffe · GitHub

Python implementation of softmax loss layer · Issue #4023 · BVLC/caffe · GitHub

 

 

既存のレイヤーの組み合わせで書けるかもしれないので要調査。

Caffe | Layer Catalogue