2017-12-05 6 views
1

私はCaffe ImageNet Tutorialに続き、bvlc_reference_caffenetを正常にトレーニングできました。今私は入力データを[0,255]から[0,1]にスケーリングしたいと思っています(を追加してCaffe LeNet MNIST Tutorialのように固定された/浮動小数点精度のハードウェアでこのCNNを実行する必要があるため) data層のパラメータ:これにより入力データを[0,1]にスケーリングしたbvlc_reference_caffenetを

Iはbvlc_reference_caffenetにも、このスケールパラメータを添加し、さらに255により各チャネルから減算され、平均化パラメータ分割:

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

関連する問題