2017-12-05 4 views
1

인 bvlc_reference_caffenet을 학습했습니다. Caffe ImageNet Tutorial을 따라 갔고 bvlc_reference_caffenet을 성공적으로 교육 할 수있었습니다. 이제 입력 데이터를 [0,255]에서 [0,1]로 스케일링하고 싶습니다. (나중에 고정 CNN/부동 소수점 정확도를 가진 하드웨어에서이 CNN을 실행해야하기 때문에) 과 같이 scaledata 계층 파라메터 :입력 데이터가 [0,1]

I는 bvlc_reference_caffenet에이 스케일 파라미터를 첨가하고, 또한 255에 의해 각 채널로부터 감산한다 평균 파라미터 분할 이에
layer { 
    name: "mnist" 
    type: "Data" 
    transform_param { 
    scale: 0.00390625 
    } 
    data_param { 
    source: "mnist_train_lmdb" 
    backend: LMDB 
    batch_size: 64 
    } 
    top: "data" 
    top: "label" 
} 

:

layer { 
    name: "data" 
    type: "Data" 
    top: "data" 
    top: "label" 
    include { 
    phase: TRAIN 
    } 
    transform_param { 
    crop_size: 227 
    scale: 0.00390625 
    mean_value: 0.40784313 
    mean_value: 0.45882352 
    mean_value: 0.48235294 
    mirror: true 
    } 
    data_param { 
    source: "examples/imagenet/ilsvrc12_train_lmdb" 
    batch_size: 32 
    backend: LMDB 
    } 
} 
layer { 
    name: "data" 
    type: "Data" 
    top: "data" 
    top: "label" 
    include { 
    phase: TEST 
    } 
    transform_param { 
    crop_size: 227 
    scale: 0.00390625 
    mean_value: 0.40784313 
    mean_value: 0.45882352 
    mean_value: 0.48235294 
    mirror: false 
    } 
    data_param { 
    source: "examples/imagenet/ilsvrc12_val_lmdb" 
    batch_size: 32 
    backend: LMDB 
    } 
} 

언제 I 정확도가 항상 우연보다 낮을 것입니다 지금 그물을 훈련. [0,255] 이미지 대신 [0,1] 이미지로 네트워크를 조정하기 위해 채택해야하는 다른 매개 변수는 무엇입니까?

답변

2

Caffe는 먼저 평균을 뺀 다음 결과의 크기를 조정합니다. 원래 0...255 평균값을 유지해야합니다.
참조 :

if (has_mean_file) { 
      transformed_data[top_index] = 
      (datum_element - mean[data_index]) * scale; 
} 

(data_transformer.cpp)

관련 문제