LoginSignup
2
2

More than 5 years have passed since last update.

C++プログラマがWindows上でCaffeを使ってDeep Learningするお話(4) 学習編

Last updated at Posted at 2016-11-17

ようやく学習のお話になります。

実行モジュール

いきなり実行モジュールのお話から始めます。
学習を行うためには「caffe.exe」を使用します。

引数

「caffe.exe」のシンタックスは以下のようになっています。

caffe <command> <args>

今までのツール類とは、ちょっと表現が違ってます ^^;

command

ここでは、処理の種類を指定します。

command 意味 使用頻度
train トレーニングを行います
test テストを行います
device_query GPUの情報を表示します
time ベンチマークを実行します

ここでは「train」についてのみ説明します。
(後は知らなくても問題なし)

args

代表的な引数は以下の通りです。
(全てを知りたい人は「caffe -help」を実行)

args 意味 設定例
-solver ソルバファイルを指定します -solver solver.prototxt
-snapshot 学習の続きを行います -snapshot train_100000.solverstate
-weights 他で作成した学習モデルに追加して学習させます -weights train_10000.caffemodel

これだけ知っていればOKです。
「-snapshot」と「-weights」は、「-solver」も一緒に指定する必要があります。
なお、指定したそれぞれのファイルの中身については、また別の機会に説明します。
(そこに設定するモデルファイル等についても)

以下では、「-solver」のみを指定したときの動作を説明していきます。

実行時のログ

まずソルバファイルの内容が表示されます。
※あっという間に流れていきます

次にモデルファイルの内容が表示されます。
モデルファイルとは、ニューラルネットの各レイヤに何を設定するか、またパラメータにどういった値を設定するかを指定したファイルになります。
※これも、あっという間に流れていきます
モデルファイルは、トレーニング用とテスト用の2種類表示されます。

ここで、たとえばGPUのメモリが足らないなど、エラーになるとメッセージが表示され、終了します。
その場合はエラーの対処(GPUメモリが足らないなら、画像ファイルを小さくしたり、バッチサイズを小さくしたり)を行います。

これが終わると、いよいよ学習経過のログが表示されます。
例えばこんな感じのログが一定間隔で出力されます。

I0318 15:49:36.599722  3487 solver.cpp:408]     Test net output #0: accuracy = 0.0753
I0318 15:49:36.599763  3487 solver.cpp:408]     Test net output #1: loss = 2.39124 (* 1 = 2.39124 loss)

これはある程度トレーニングしたところで、「どれどれ、精度はどのくらい上がったかな?」とテストをした結果のログになります。
(もちろん、その間隔等は自分で設定するのですが)

「accuracy」は正解率で、1に近ければ近いほどいいです。
「loss」は予測とのズレになり、小さければ小さいほどいいです。

また、こちらも一定間隔で、評価で使用する学習モデルデータ(出力ファイル)を、ソルバファイルで指定したファイル名で出力します。
設定した名前に学習した回数が付加され「caffe_alexnet_train_iter_450000.caffemodel」といった感じになります。
(snapshot_prefixで「caffe_alexnet_train」を指定した場合)

おまけ

GPUを使う使わないにも寄りますが、画像のサイズやモデルの設定で、実行時間は相当変わります。
まずは短いモデルで実行してGPUメモリでエラーにならないかを確認して、それから本当に使用したいモデルで学習するのがよいかと思います。

関連記事

C++プログラマがWindows上でCaffeを使ってDeep Learningするお話(1)
C++プログラマがWindows上でCaffeを使ってDeep Learningするお話(2)
C++プログラマがWindows上でCaffeを使ってDeep Learningするお話(3)
C++プログラマがWindows上でCaffeを使ってDeep Learningするお話(5)
C++プログラマがWindows上でCaffeを使ってDeep Learningするお話(6)
C++プログラマがWindows上でCaffeを使ってDeep Learningするお話(7)
C++プログラマがWindows上でCaffeを使ってDeep Learningするお話(8)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2