2016-07-14 3 views
0

Je veux finetune VGG19 et ça marche bien. Bien que la formation que je suis en soustrayant les pixels moyens commeComment définir des pixels moyens pour feedforward? 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" 
} 

Maintenant, je dois anticipatrice à travers mon réseau réglé finement. Si je regarde this , ils ne spécifient pas la valeur de pixel moyenne dans le fichier de déploiement.

Question:
Comment puis-je fournir mon réseau valeur moyenne de pixel en feedforwarding?
Mon code pour anticipatrice (réseau de chargement) est

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

Maintenant, je ne suis pas sûr que mean=(104,117,123) travail ou non parce que quand je considérais le code source de classifier alors je suis venu à connaître par des commentaires dans le code qu'il ne prend que ndarray sinon, il donne une erreur.
Comment puis-je soustraire des pixels moyens de l'image d'entrée?

Répondre

3

vous pouvez spécifier votre mean comme ndarray simplement par

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

Merci Shai pour me aider à nouveau. –