2016-12-05 1 views
0

Ich löse ein Erkennungsproblem mit ConvNet. In meinem Fall sind die Etiketten jedoch eine Matrix der Dimension [3 x 5] für jedes Bild. Ich benutze Caffe für diese Arbeit. Ich lese die Bilder mit der Datalayer, während ich die Etiketten mit HDF5Layer lesen.Caffe Multi-Label Matrix Eingang

Der HDF5Layer liest die [3x5] Etikettenmatrix als [1x15] Dimensionsvektor. Also habe ich Reshape Layer mit dem Vektor in Matrix vor der Berechnung der L2-Verlust umformen. Ich erkannte jedoch, dass die Umformschicht die Daten in H x W formatiert, während meine Etikettenmatrix [W x H] ist, d. H. [W = 3, h = 5] , daher ist die Umformung inkorrekt. Ich frage mich, ist es eine Möglichkeit, die [1x15] Etikett Vektor in der richtigen Reihenfolge, dh [3x5] und nicht[5x3]

Eine andere Möglichkeit, ich kann ich um gedacht neu zu gestalten Arbeit wird durch die Ausgabeform Faltungsschicht in [1 x 15] abflachen und Berechne dann den Verlust mit meinem [1 x 15] -Label.

Ich zeige das Problem mit Figuren zum besseren Verständnis wegen meines schlechten Englisch.

Eample meiner Eingangsmatrix Etikett (Anmerkung werden die Bilder nur zur Veranschaulichung vergrößert) Input Matrix Lab

Ergebnis Caffe Reshape Schicht

enter image description here

Jeder Vorschlag, wenn ich es richtig mache?

Antwort

1

Jede Art der Berechnung der Verlust ist einfach in Ordnung. Tatsächlich spart die Berechnung in der 1x15 Form Ihnen die Zeit der Umwandlung. Die Verlustberechnung ist immer noch Pixel für Pixel; die logische Organisation spielt keine Rolle.

Mit der gleichen Idee ist es nicht wirklich wichtig, ob Sie 3x5 oder 5x3 berechnen; Alles, was zählt, ist, dass Ihre Faltungsausgabe und Ihr Etikett richtig aufeinander abgestimmt sind.

Wenn die Anzeige (Grafik, Bild usw.) übereinstimmen soll, können Sie möglicherweise nur die X- und Y-Bezeichnungen ändern, bevor Sie die Ausgabe plotten.

+0

Dank @Prune tatsächlich Ich habe bemerkt, was Sie beim Debuggen erwähnt. –