2016-07-25 11 views
0

Ich mache Transferlernen mit einem CNN. Ich möchte das Netzwerk mit meinen Daten trainieren, aber ich habe diesen Fehler, wenn ein Vorwärtspass zu tun:Fehler beim Ausführen eines Vorwärtsdurchlaufs mit Matcaffe

Error using CHECK (line 4) 
input data cell length must match input blob number 

Error in caffe.Net/forward (line 92) 
    CHECK(length(input_data) == length(self.inputs), ... 

Error in main (line 79) 
results= Unet.forward({data}); 

es zu nehmen langsam und lösen Fehler Schritt für Schritt habe ich nur eine Datenschicht in meinem Netzwerk für jetzt. Das ist meine train.prototxt Datei:

name: 'my_phseg_v5-train' 

force_backward: true 

layer {top: 'image' top:'anno' name: 'loaddata' type: 'HDF5Data' hdf5_data_param { source: '/home/alexandra/Documents/my-u-net/my_data.txt' batch_size: 1} include: { phase: TRAIN }} 

in Matlab:

model = '/home/alexandra/Documents/my-u-net/my_phseg_v5-train.prototxt'; 
weights = '/home/alexandra/Documents/my-u-net/my_phseg_v5.caffemodel'; 

%defining the net: 
Unet = caffe.Net(model, weights, 'train'); % create net and load weights 

results= Unet.forward({'image'}); 

Ich verstehe nicht wirklich, was ich habe als Argument vorzubringen (Argument). Könnte mir jemand in diesem Punkt helfen?

Ich habe auch festgestellt, dass in meinem Unet die Dimension der Eingangszelle war 0x1 ... Ich denke, dass auch ein Grund, warum es nicht funktioniert.

Hat jemand eine Idee, wie man dieses Problem lösen kann?

Antwort

0

fand ich eine Lösung für mein Problem:

für die Eingangszelle, die eine Abmessung von 0x1 hatte:

ich anstelle der train.prototxt Datei die deploy.prototxt Datei verwendet, die ich wurde mit der Anfang. In dieser Datei ist die Dimension der Eingabe definiert.

habe ich dies als Argument der Funktion nach vorn:

output = Unet.blobs('image').get_data(); 
results= Unet.forward({output}); 

Es sind die Daten (in meinem Fall die Bilder) selbst, der als Eingang gesetzt werden müssen.

Verwandte Themen