border_mode für Faltungsschichten in Keras


7

Keras hat zwei border_mode für convolution2D, gleich und gültig. Könnte jemand erklären, was "dasselbe" tut, oder auf eine Dokumentation hinweisen? Ich konnte kein Dokument im Internet finden (außer Leute, die darum bitten, dass es auch in theano implementiert wird).

Antworten:


12

Im Rahmenmodus "gültig" erhalten Sie eine Ausgabe, die kleiner als die Eingabe ist, da die Faltung nur dort berechnet wird, wo sich die Eingabe und der Filter vollständig überlappen.

Im Rahmenmodus "gleich" erhalten Sie eine Ausgabe, die die "gleiche" Größe wie die Eingabe hat. Das bedeutet, dass der Filter um "Filtergröße / 2" außerhalb der Grenzen der Eingabe liegen muss - der Bereich außerhalb der Eingabe wird normalerweise mit Nullen aufgefüllt.

Beachten Sie, dass einige Bibliotheken auch den Rahmenmodus "voll" unterstützen, bei dem der Filter noch weiter außerhalb der Grenzen der Eingabe liegt - bis zu "Filtergröße - 1". Dies führt zu einer Ausgabeform, die größer als die Eingabe ist.

Es gibt eine kurze Erklärung in .. numpys Convolve-Dokumentation:

http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.convolve.html


Ich weiß, dass Sie mit valid eine kleinere Ausgabe erhalten. Dies ist die Art von Faltung, die ich gewohnt bin, bei der Sie eine kleinere Ausgabe erhalten, da sich der Filter über das Originalbild bewegt. Sie sagen, dass Sie mit "gleich" das Originalbild verlassen, um die gleiche Größe zu erhalten. Was sind dann die Eingaben für diese Punkte? Nehmen wir an, dass sie Null sind?
Benutzer

1
Ja, siehe oben - "Der Bereich außerhalb des Eingangs ist normalerweise mit Nullen aufgefüllt". In einigen Bibliotheken können Sie angeben, welcher Wert zum Auffüllen verwendet werden soll. Keras verwendet Nullen.
stmax
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.