2016-06-13 2 views
0

トレーニング中にCaffeソルバーでtest_state機能を使用しようとしました。私は複数のテストステージの結果が正しくない

test_state: { stage: 'test-on-testSet0' } 
test_iter: 726 
test_state: { stage: 'test-on-testSet1' } 
test_iter: 363 

をsolver.prototxtするために、次のコードを追加し、これを実現するためにそして私はこのようなtrain_val.prototxt修飾:

layer { 
    name: "data" 
    type: "ImageData" 
    top: "data" 
    top: "label" 
    include { 
    phase: TEST 
    stage: "test-on-testSet0" 
    } 
    transform_param { 
    mirror: false 
    scale: 0.0039215684 
    } 
    image_data_param { 
    source: "./set0.lst" 
    batch_size: 1 
    } 
} 

layer { 
    name: "data" 
    type: "ImageData" 
    top: "data" 
    top: "label" 
    include { 
    phase: TEST 
    stage: "test-on-testSet1" 
    } 
    transform_param { 
    mirror: false 
    scale: 0.0039215684 
    } 
    image_data_param { 
    source: "./set0.lst" 
    batch_size: 2 
    } 
} 

これは、両方のテストケースは、理想的には同じであることに留意しなければなりませんテストは./set0.lstファイルに存在する完全なイメージセットで実行されます。

なお、build/tools/caffeを使用して訓練している間、両方のテスト状態の精度結果は同一ではありません。 精度レイヤーも正しく接続されています。 この不一致の原因は何でしょうか?

答えて

1

すべてのtest_statesに同じbatch_sizeを使用して問題を解決できました。 caffeのように見えるすべてのテストケースが同じbatch_sizeを持つことを期待しています。

この回答が将来誰かに役立つと願っています。

Btw、おそらく、これはcaffeコミュニティにバグとして発行される可能性があります。私は最新のcaffeコミット(df412ac)でこの問題に直面していました。

関連する問題