2016-06-13 5 views
0

교육을받는 동안 Caffe Solver에서 test_state 기능을 사용하려고했습니다. 테스트 케이스 모두 이상적으로 동일한 지여러 테스트 단계의 결과가 올바르지 않습니다.

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 
    } 
} 

그것은 주목해야하는이를 구현하기 위해 나는이 같은 train_val.prototxt을 수정 한 다음

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

solver.prototxt 다음 코드를 추가 이 테스트는 ./set0.lst 파일에있는 전체 이미지 세트에서 실행됩니다.

그래도 build/tools/caffe을 사용하여 학습하는 동안 두 테스트 상태에 대해 인쇄 된 정확도 결과는 동일하지 않습니다. 정확도 레이어가 올바르게 연결되었습니다. 이 불일치의 원인은 무엇일까요?

답변

1

모든 test_states에 동일한 batch_size을 사용하여 문제를 해결할 수있었습니다. caffe는 모든 테스트 케이스가 동일한 batch_size를 가질 것으로 예상합니다.

이 답변을 통해 향후 누군가를 도울 수 있기를 바랍니다.

Btw, 이것은 아마도 Caffe 커뮤니티에 버그로 발행 될 수 있습니다. 나는 caffe (df412ac)의 최신 커밋으로이 문제에 직면했다.

관련 문제