2016-04-19 9 views
1

In einer neueren Diskussion fand ich heraus, dass einige Teile des deploy.prototxt nur existieren, weil sie direkt aus dem train_test.prototxt kopiert wurden und während des Tests ignoriert werden. Zum Beispiel:Welcher Teil der Datei deploy.prototxt in caffe ist zum Testen unbedingt erforderlich?

layer { 
    name: "conv1" 
    type: "Convolution" 
    bottom: "data" 
    top: "conv1" 
    param {      #Starting here 
    lr_mult: 1 
    } 
    param { 
    lr_mult: 2 
    }       #To here 
    convolution_param {   #is this section useful? 
    num_output: 20 
    kernel_size: 5 
    stride: 1 
    weight_filler { 
     type: "xavier" 
    } 
    bias_filler { 
     type: "constant" 
    } 
    } 
} 

Ich wurde gesagt, dass der Abschnitt LR für Gewichte als Verzerrungen enthalten war nutzlos in deploy Dateien und kann gelöscht werden. Das hat mich zum Nachdenken gebracht, ist der convolution_param-Teil unbedingt erforderlich? Wenn ja, müssen wir noch die Füller für Gewicht und Verzerrung definieren, da wir diese Datei nur testen und Füller nur initialisieren, wenn wir ein Netzwerk trainieren müssen. Gibt es noch andere Details, die unnötig sind?

Antwort

2

Der convolution_param Teil ist erforderlich, aber Sie können weight_filler und bias_filler entfernen, wenn Sie möchten.

+0

Danke Harsh! Eine kleine Frage: Muss ich sie entfernen oder kann ich, wenn ich will und sonst wird es sowieso kein Problem sein. – Qazi

+0

@Qazi ist es nicht zwingend erforderlich, diese Teile zu entfernen. – Shai

+0

@Shai Danke! – Qazi

2
layer { 
    name: "conv1" 
    type: "Convolution" 
    bottom: "data" 
    top: "conv1" 
    convolution_param { 
    num_output: 20 
    kernel_size: 5 
    stride: 1 
    } 
} 

Die obige Schicht läuft während des Tests gut.

Verwandte Themen