Caffe(八)日常問題解析
3143 ワード
GLOG_minloglevel=X ./your_app
Xはterminalに印刷する必要があるログのレベルを表し、以下は各レベルのコード詳細、0 - debug
1 - info (still a LOT of outputs)
2 - warnings
3 - errors
m_layer->AddMatVector(dv, label); // , MemoryData
後、私はこの関数が8ビットのシンボルレス単一チャネルデータしか受け入れられないことを発見しました.それはその前にcheckがあったからです.入力したデータが8ビットのシンボルレス単一チャネルデータでなければならないことを保証します.このcheckプログラムをスキップすれば走ることができます.これは実はpythonがmemorydatalayerを操作しているときの操作で、pythonの操作のソースコードと解析については、下のリンクを見ることができます.python caffe memorydatalayerの操作は上のリンクの啓発を経て、私は直接上記のcheckの判断を迂回して、データをメモリに入れて、しばらくデバッグした後に通過して、興奮して、test_iter: 1000 //1000 , , , , ,
// batch_size, :test_iter = /batch_size
test_interval: 1000 // , 1000 ,
max_iter: 12000 //
layer {
name: "accuracy"
type: "Accuracy"
bottom: "fc8"
bottom: "label"
top: "accuracy"
include {
phase: TEST
}
}
accuracy層は、最後の全接続層(ニューロン個数=カテゴリ数であるがactivation functionには加入していない)の出力とデータセットのlabelsとを比較することによって得られ、AccuracyLayer内部で「fc 8の出力によってデータセットの予測labelsが得られる」(最大値のidnexがサンプルのカテゴリ)では、入力したデータセットの真のlebelsと比較してaccurayの計算を実現!最後の全接続層(fc 8)の出力値は区間[−∞,∞]にあり、確率値fc 8の後に続くSoftmaxWithLoss層が行う作業は2段階ではありません