桜朔

さくらさく

                                      スポンサーリンク

CaffeでDeep Learning (2)

こんにちは,櫻井朔@hajimesakuraiです.

前回の続きです.最終的にはもちろん自分で学習をさせることが目標ですが,ひとまずは動かし方に慣れるため,サンプルを使用することにします.

Runtest

まずはインストールしたCaffeが正常に動作するか確認します.

$ cd $CAFFE_ROOT
$ make runtest

f:id:hajimesakurai:20150817210209p:plain

"$CAFFE_ROOT"はcaffeがインストールされているディレクトリです(ここでは~/caffe)."PASSED"が表示されれればOKです.

サンプルをダウンロード

他のブログ等でもあるとおり,公式ページのチュートリアルではMNIST(手書き数字),ILSVRC12(物体認識),CIFAR10(物体認識)などを使用するケースについて解説がありますが,ここではCIFAR10を使用することにします.

CIFAR-10 and CIFAR-100 datasets

データをダウンロードして格納するため,下記コマンドを実行します.

$ ./data/cifar10/get_cifar10.sh
$ ./examples/cifar10/create_cifar10.sh

これでexample/cifar10 内にcifar10_test_lmdb(評価用データベース)とcifar10_train_lmdb(学習用データベース)というディレクトリ,およびmean.binaryproto(正規化用平均画像)というファイルが生成されます.

学習

"train_full.sh"と"train_quick.sh"が用意されていますが,今回はquickを使用することにします.
"cifar10_quick_train_test.prototxt","cifar10_quick_solver.prototxt","cifar10_quick.prototxt"などに動作条件が記述されています.この場合,CPUモードで実行するので"cifar10_quick_solver.prototxt"と"cifar10_quick_solver_lr1.prototxt"の"solver_mode"をCPUに変更します.学習と評価は以下のコマンドで実行します.

$ ./examples/cifar10/train_quick.sh

f:id:hajimesakurai:20150817230932p:plain イタレーション4000回で30分ほどかかりました."cifar10_quick_iter_4000.caffemodel"と"cifar10_quick_iter_4000.solverstat"というファイルが出力されているはずです.途中で画面に出力される"accuracy"が正答率を表しています.以上で学習は終わりです.

分類テスト

分類はPythonプログラムを走らせて行うため,PYTHONPATHを設定しておきます.

$ export PYTHONPATH=$PYTHONPATH:$CAFFE_ROOT/python

これで,pythonフォルダにある"classify.py"を用いれば分類ができるはずなのですがエラーが出たので,こちらのページのP.75を参考に分類プログラムを作成しました.適当に馬の画像をダウンロードしてきて,

$ python classify_cifar10.py horse.jpg

とすると, f:id:hajimesakurai:20150817235443p:plain 確かに7番目の"horse"と判定(56.1%)されました.

後記

次回は自分でデータを用意する場合について述べたいと思います.

それでは.

深層学習 (機械学習プロフェッショナルシリーズ)

深層学習 (機械学習プロフェッショナルシリーズ)