2017-06-15 6 views
0

CaffeインストールのMNISTの例では、Caffe:softmaxスコアを印刷してください

どのテスト画像でも、各カテゴリのsoftmaxスコアを取得し、それらの処理をいくつか行いますか?それらの平均と分散を計算します。

私は初心者ですので詳細は私には大いに役立ちます。モデルを訓練してテスト機能を使用して予測を得ることはできますが、上記の結果を得るためにはどのファイルを編集するのかわかりません。

+0

どのようにあなたのpythonのスキルですか? – Shai

+0

私は少なくとも学歴が低いと言います。 –

+0

次にdeploy.prototxtでPythonインターフェイスを使用して、出力で何でもできます – Shai

答えて

0

あなたは今、あなたは(キーが出力ブロブの名前です)辞書outであなたのネットの出力を持っている

import caffe 
net = caffe.Net('/path/to/deploy.prototxt', '/path/to/weights.caffemodel', caffe.TEST) 
in_ = read_data(...) # this is up to you to read a sample and convert it to numpy array 
out_ = net.forward(data=in_) # assuming your net expects "data" in blob 

Pythonインタフェースを使用することができます。いくつかの例のループでそれを実行することができます。

0

私はあなたの質問に答えてみることができます。あなたは@に基づいてコードを追加することにより、各カテゴリの確率を得ることができ、提供@Shaiコードと組み合わせて、データを処理し、あなたのPythonコードで

layer { 
    name: "prob" 
    type : "Softmax" 
    bottom: "fc6" 
    top: "prob" 
} 

:あなたの展開ネットに仮定すると、ソフトマックス層は、以下のようなものですシャイのコード:

predicted_prob = net.blobs['prob'].data 

predicted_probは、すべてのカテゴリを持つ確率を含む配列が返されます。例えば、2つのカテゴリしかない場合、predicted_prob[0][0]はこのテストデータが1つのカテゴリに属する​​確率になり、predicted_prob[0][1]は他のカテゴリの確率になります。

PS:

あなたは、任意の追加のPythonスクリプトを記述したくない場合は、https://github.com/BVLC/caffe/tree/master/examples/mnist によると、この例では、自動的にテストするすべての500回の繰り返しを行う予定だという。 https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet_solver.prototxt

などの「500」がソルバーで定義されているため、ソルバーファイルを処理するcaffeソースコードをトレースバックする必要があります。私はそれがすべきだと思いますhttps://github.com/BVLC/caffe/blob/master/src/caffe/solver.cpp

私はsolver.cppがあなたが見る必要がある正しいファイルであることを確信していません。しかし、このファイルでは、いくつかの値のテストと計算の機能を持っていることがわかります。誰もあなたの質問に答えることができない場合は、それがあなたにいくつかのアイデアを与えることができれば幸いです

関連する問題