2016-07-14 5 views
0

Я хочу, чтобы finetune VGG19, и он работает хорошо. В то время как обучение я вычитая средние пиксели, какКак установить средние пиксели для прямого представления? caffe

name: "VGG_ILSVRC_19_layer" 
layer { 
    name: "data" 
    type: "Data" 
    include { 
    phase: TRAIN 
    } 
transform_param { 
    mean_value: 104 
    mean_value: 117 
    mean_value: 123 
    mirror: false 
} 
data_param { 
    source: "examples/VGG_finetune/train_lmdb" 
    batch_size: 8 
    backend: LMDB 
    } 
    top: "data" 
    top: "label" 
} 

Теперь мне нужно Feedforward через мою отладили сеть. Если я смотрю this , они не задают значение среднего пикселя в файле развертывания.

Вопрос:
Как я могу обеспечить мою сеть среднего значения пикселя в то время как feedforwarding?
Моего код с прогнозированием (погрузочная сеть) является

net = caffe.Classifier(model_prototxt, model_trained, 
          mean=[104,117,123], 
          channel_swap=(2,1,0), 
          raw_scale=255, 
          image_dims=(224, 224)) 

Теперь я не уверен, является ли mean=(104,117,123) работы или нет, потому что, когда я смотрел исходный код classifier потом я узнал через комментарии в коде, что он только принимает ndarray иначе это даст ошибку.
Как вычесть средние пиксели из входного изображения?

ответ

3

вы можете указать mean, как ndarray просто

net = caffe.Classifier(model_prototxt, model_trained, 
         mean=NP.array([104, 117, 123], dtype='f4'), 
         channel_swap=(2,1,0), 
         raw_scale=255, 
         image_dims=(224, 224)) 
+1

Спасибо Шай за раз мне помогает. –