全部入れ直したし、私も全部忘れているので、もう一度同じことをやってみようと思ったが、いやあ、説明文が悪いですな。
読み返しても、何をして良いかよくわからなかった。
この辺りを参考に動かそう。
OSX10.10でCaffeをインストール、リファレンスモデルで画像を分類 - Qiita
caffeのサンプルを動かす - スチールウールの活動記録
途中までやっていて気付いたのだが、これはexamples/imagenetは関係ないんだな。。
あれはトレーニングの仕方に関するexamplesなのだろう。
説明されている内容は、こうだ。
- サンプル画像を取ってくる : www.vision.caltech.eduからダウンロード
- モデルファイルを取ってくる : dl.caffe.berkeleyvision.orgからダウンロード
- モデルファイルに関連するデータを取ってくる : get_ilsvrc_aux.shを実行
最後にpython classify.pyを実行してクラス分けをするのだが、ここにはサンプル画像しか引数に与えていない。
モデルファイルとトレーニング済みデータは必要なのだろうか?
いや、いるのだろうけど、dataにもmodelsにも他のフォルダがあるので、どうやって使い分けているのだろうか、と心配になるではないか。
pythonはよくわからないので雰囲気で見てみよう。
https://github.com/BVLC/caffe/blob/master/python/classify.py
- --model_defがなかったら、models/bvlc_reference_caffenet/deploy.prototxt
- --pretrained_modelがなかったら、models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
あれ、data/が出てこないぞ?
確かに、classify.pyを実行するときにはdata/自体がなくても動作した。
data/を使うのは、show_result.pyだけだ。
これはcaffeが提供しているわけではないので、提供元を見てみよう。
変数categoriesにタブ区切りのテキストとして読込んでいるようだ。
show_result.pyで出力される内容の、この部分ですな。
#1 | n04552348 warplane, military plane | 84.1%
#2 | n04008634 projectile, missile | 5.8%
#3 | n02690373 airliner | 5.0%
classify.pyでは「n04552348に分類される確率が84.1%です」というところまでやってくれるから、それを名前解決する役割をしていると言うことだろう。
get_ilsvrc_aux.shはトレーニング済みデータを取ってくるのかと思っていたが、それはモデルファイルと一緒に提供されると思って良いのだろう。
まあ、ネットワークとトレーニングデータはセットじゃないと意味がないだろうしね。
今回使ったbvlc_reference_caffenetには、以下のファイルが入っている。
- bvlc_reference_caffenet.caffemodel(自分でダウンロード)
- deploy.prototxt
- solver.prototxt
- train_val.prototxt
classify.pyに与えるのは、最初の2つだけだ。
deploy.prototxtは、ネットワークの構成のようだ。
最初にこういうのが書かれていた。
input_param { shape: { dim: 10 dim: 3 dim: 227 dim: 227 } }
10 x 3 x 227x227。
227x227は画像のサイズで、3はRGBだろう。
10は?
http://docs.chainer.org/en/stable/reference/caffe.html
ミニバッチのサイズなのかな。
自分でトレーニングデータを作る必要がなければ、このようにどこかからもらってくればよいので、GPUがなくてもそんなに困らないように思う。
でも、症例をたくさん入れて診てもらう、みたいなことをしたかったら、自分でトレーニングデータを作らにゃならんだろう。
データはあるけどネットワークの構成を考えるのはちょっと・・・という場合は、既にあるprototxtを使ってトレーニングさせることができますよ、というのがexamples/imagenetサンプルのやりたいことだと思う。
うん、前よりは多少理解が早くなったように思う。
深層学習に対する理解と言うよりは、caffeなどのフレームワークを使うときの考え方への理解なのだけど、まあいいのだ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。