ノート

Caffeのデモプログラムを試してみる (2014-12-24〜 )

Titanのインストール、Caffeのコンパイルが終わったので、元ページに載っているデモプログラムを試してみる。

MNISTデータを試してみる。

出所はBerkeleyのこのページ Training LeNet on MNIST with Caffe にある通り。

cd $CAFFE_ROOT
./data/mnist/get_mnist.sh    データを持ってくる
./examples/mnist/create_mnist.sh  データの準備

./examples/mnist/train_lenet.sh  学習させる

結果はこんな風になった。

I1219 08:37:12.889474 32546 solver.cpp:247] Iteration 10000, Testing net (#0)
I1219 08:37:13.882843 32546 solver.cpp:298]     Test net output #0: accuracy = 0.9912
I1219 08:37:13.882863 32546 solver.cpp:298]     Test net output #1: loss = 0.0281126 (* 1 = 0.0281126 loss)
I1219 08:37:13.882869 32546 solver.cpp:233] Optimization Done.
I1219 08:37:13.882874 32546 caffe.cpp:121] Optimization Done.

中身を見てみる

起動用スクリプト train_lenet.sh の内容は

#!/usr/bin/env sh
./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt

要するに、caffeプログラムを、trainモードで、かつsolverとして lenet_solver.prototxt ファイルの内容を参照して、起動している。


prototxtファイルのパラメタの書き方などは、ファイル caffe.prototxt にある通りだが、 それをざっと整理してみたのが ノート/Caffeのモジュール記述抜粋(caffe.prototxt) である。


上記shファイルで参照されている lenet_solver.prototxt の内容は   <<<lenet_solver.prototxt>>>

net: "examples/mnist/lenet_train_test.prototxt"
test_iter: 100  test時に(batch size = 100 を)100回繰り返す(全体で10000データ)
test_interval: 500  testは学習500回ごと間隔で行う
base_lr: 0.01  ベースの学習レートは0.01に設定
momentum: 0.9  モーメンタムは0.9
weight_decay: 0.0005 重みの遅延は0.0005
lr_policy: "inv"  学習レートのポリシーはinvにする
gamma: 0.0001  gammaは0.0001
power: 0.75   powerは0.75
display: 100   結果表示は100繰り返しごと
max_iter: 10000  最大の繰り返し数は10000回まで
snapshot: 5000  途中のスナップショットは5000回おき
snapshot_prefix: "examples/mnist/lenet"  スナップショットのファイルをここへ置く
solver_mode: GPU  solverはGPUを使う

この1行目の net: で参照されているネットの構造は <<<file.lenet_train_test.prototxt>>> にある通り

となっている。図に書くと、

mnist1.jpg


(2015-01-13) prototxtファイルからブロック図を生成するプログラムがあるのを発見。 下の図の作り方は、

> python $(caffe_root)/python/draw_net.py $(caffe_root)/examples/mnist/lenet_train_test.prototxt output.png

でPNGファイル output.png が生成される。

lenet_train_test.prototxtmnist_autoencoder.prototxt
lenet_train_test.pngmnist_autoencoder.png

ついでに、同じexamples/mnistディレクトリにあった mnist_autoencoder.prototxt をブロック図にしたものが右側。


CIFAR10

quickの最後の方のコンソール

I1226 10:30:28.663301 13513 solver.cpp:247] Iteration 5000, Testing net (#0)
I1226 10:30:30.767330 13513 solver.cpp:298]     Test net output #0: accuracy = 0.7589
I1226 10:30:30.767351 13513 solver.cpp:298]     Test net output #1: loss = 0.724786 (* 1 = 0.724786 loss)
I1226 10:30:30.767360 13513 solver.cpp:233] Optimization Done.
I1226 10:30:30.767366 13513 caffe.cpp:121] Optimization Done.

fullの最後の方のコンソール

I1226 11:43:40.781108 24261 solver.cpp:247] Iteration 70000, Testing net (#0)
I1226 11:43:42.959712 24261 solver.cpp:298]     Test net output #0: accuracy = 0.8144
I1226 11:43:42.959734 24261 solver.cpp:298]     Test net output #1: loss = 0.533652 (* 1 = 0.533652 loss)
I1226 11:43:42.959743 24261 solver.cpp:233] Optimization Done.
I1226 11:43:42.959749 24261 caffe.cpp:121] Optimization Done.
cifar10_quick.pngcifar10_full_train_test.png
cifar10_quick.pngcifar10_full_train_test.png

その他の参考サイト


Caffeのデモプログラムを試してみる2


添付ファイル: filecifar10_full_train_test.png 1287件 [詳細] filecifar10_quick.png 1302件 [詳細] filemnist_autoencoder.png 1355件 [詳細] filelenet_train_test.png 1375件 [詳細] filemnist1.jpg 1900件 [詳細] filelenet_train_test.prototxt.txt 1232件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-17 (日) 15:28:16 (2628d)