2017-06-21 1 views
1

Ich bin ein Training-Netzwerk in Keras mit Theano Backend und ich verwende ImageDataGenerator mit Flow_from_directory.Zero-Padded Regionen von Netzwerkverlust ausschließen - Keras 2.0 Theno Backend (Segmentierung Netzwerk)

Meine Bilder haben flexible Größe. Um flow_from_directory zu verwenden, müssen Sie eine feste Größe (target_size) angeben und beim Lesen der Bilder füllt die Funktion automatisch die Punkte außerhalb der Grenzen des Originalbildes.

Momentan setze ich die angegebene Größe auf einen Wert, der größer ist als mein größtes Bild - sagen wir, das größte Bild ist 300x400, fixiere die target_size auf 400x400 und benutze fill_mode = 'constant' und cval = 0, um die Punkte außerhalb des Originals zu puffern Bild mit Null.

Jetzt ist mein Problem wie folgt. Während des Trainings möchte ich nicht, dass diese gepolsterten Regionen zu meiner Verlustfunktion beitragen. Hat jemand eine Idee, wie man das macht?

+0

Haben Sie Maskierung? –

Antwort

0

Masking könnte Ihnen helfen.

Maskiert eine Sequenz, indem ein Maskenwert zum Überspringen von Zeitschritten verwendet wird.

Für jeden Zeitschritt im Eingangstensor (Dimension # 1 im Tensor), wenn alle Werte im Eingangstensor zu diesem Zeitschritt gleich mask_value sind, wird der Zeitschritt in allen nachgeschalteten Schichten maskiert (übersprungen) solange sie Maskierung unterstützen).

Wenn eine Downstream-Schicht die Maskierung nicht unterstützt und dennoch eine solche Eingabemaske empfängt, wird eine Ausnahme ausgelöst.

Es ist technisch für Zeitreihen gemacht, aber es sollte mit einigen Optimierungen für Bilder zu arbeiten. Here können Sie einige Versuche dazu (und einige Alternativen) finden.

+0

Hallo, danke für die Antwort. Ich überprüfte es, obwohl es immer noch kein funktionierendes Beispiel für die Verwendung von Maskierung in Nicht-LSTM-Strukturen im Netz gibt. – CaglarAytekin

+0

Nun, wenn Maskierung NICHT von einem Layer unterstützt wird, löst Keras eine Ausnahme aus, wie in den Dokumenten angegeben. Sie sollten also in der Lage sein, sich auf jede Ebene anzuwenden, die es theoretisch unterstützt? Ich wäre wirklich interessiert zu wissen, ob Sie es schaffen, halten Sie mich auf dem Laufenden! – michetonu

Verwandte Themen