単なる備忘録ともいう
用意するもの
- Ubuntu Server 14.04
- Caffe
- (この記事の
create_mnist.sh
まで行っておくこと) - インストール場所はホームディレクトリとする
- (この記事の
- 唐揚げそば画像(正例画像)
- 唐揚げそばに見えなくもないけど違うっぽい画像(負例画像)
教師データの用意
Caffeでは画像をそのまま扱えないため、まずはLevelDBと呼ばれるデータベース形式に変換する
mkdir -p ~/caffe/examples/cifar10/images/
images(名前は任意)内にディレクトリごとに分類された画像を格納する。ディレクトリ名は0、1・・・とする
ここから変換用スクリプトを拝借し、build_leveldb.pyとして保存
このようになる
images ├── 0 │ ├── 001.jpg │ ├── 002.jpg │ └── 003.jpg │ ├── 1 │ ├── 001.jpg │ ├── 002.jpg │ └── 003.jpg │ └── build_leveldb.py
そしてpython build_leveldb.py
を実行するとcifar10/にcifar10_train_leveldb
、cifar10_test_leveldb
が生成される 使わないのでcifar10_test_lmdbとcifar10_train_lmdbは削除しても構わない
ネットワークの設定
- cifar10_quick.prototxt
- 全
num_output
を分類したい種類数に値を変更 ここでは2となる
- 全
- cifar10_quick_train_test.prototxt
- 同様に全
num_output
を分類したい種類数に値を変更 data_param
内のbackend: LMDB
をbackend: LEVELDB
に変更data_param
内のsource: "examples/cifar10/cifar10_train_lmdb"
をsource: "examples/cifar10/cifar10_train_leveldb"
に変更data_param
内のsource: "examples/cifar10/cifar10_test_lmdb"
をsource: "examples/cifar10/cifar10_test_leveldb"
に変更
- 同様に全
- cifar10_quick_solver.prototxt
test_iter
:学習データ枚数 /batch_size
デフォルトだとbatch_size
は100
学習
cd ~/caffe ./build/tools/compute_image_mean examples/cifar10/cifar10_train_leveldb examples/cifar10/mean.binaryproto -backend=leveldb ./build/tools/caffe train --solver examples/cifar10/cifar10_quick_solver.prototxt