Lassen Sie uns die Polsterung und ihre Arten in Faltungsschichten diskutieren. In der Faltungsschicht haben wir Kernel und um den endgültigen Filter informativer zu gestalten, verwenden wir das Auffüllen in der Bildmatrix oder in jeder Art von Eingabearray. Wir haben drei Arten von Polsterung, die wie folgt sind.

  1. Polsterung voll:

    Nehmen wir einen Kernel als Schiebefenster an. Wir müssen mit der Lösung kommen, Nullen auf dem Eingabearray aufzufüllen. Dies ist eine sehr bekannte Implementierung und es wird einfacher, anhand eines einfachen Beispiels zu zeigen, wie es funktioniert. Betrachten Sie x als Filter und h als Eingabearray.

    x [i] = [6, 2]
    h [i] = [1, 2, 5, 4]

    Mit dem Null-Padding können wir die Faltung berechnen.

    Sie müssen den Filter x invertieren, sonst wäre die Operation eine Kreuzkorrelation. Erster Schritt (jetzt ohne Polsterung):



    = 2 * 0 + 6 * 1 = 6

    Zweiter Schritt:

    = 2 * 1 + 6 * 2 = 14

    Dritter Schritt:

    = 2 * 2 + 6 * 5 = 34

    Vierter Schritt:



    = 2 · 5 + 6 · 4 = 34

    Fünfter Schritt:

    = 2 * 4 + 6 * 0 = 8

    Das Ergebnis der Faltung für diesen Fall, in der alle oben genannten Schritte aufgeführt sind, wäre: Y = [6 14 34 34 8]

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    import numpy as np
      
    x = [6, 2]
    h = [1, 2, 5, 4]
      
    y = np.convolve(x, h, "full")
    print(y)  
    chevron_right
    
    
    filter_none
    
    
    Ausgabe:
    [6 14 34 34 8]
    
  2. Polsterung gleich:

    Bei dieser Art des Auffüllens hängen wir nur links vom Array und oben in der 2D-Eingabematrix Null an.

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    import numpy as np
      
    x = [6, 2]
    h = [1, 2, 5, 4]
      
    y = np.convolve(x, h, "same")
    print(y)
    chevron_right
    
    
    filter_none
    
    
    Ausgabe:
    [6 14 34 34]
    
  3. Polsterung gültig:

    Bei dieser Art des Auffüllens haben wir die reduzierte Ausgabematrix erhalten, da die Größe des Ausgabearrays verringert wird. Wir haben den Kernel nur angewendet, wenn wir eine kompatible Position auf dem h-Array hatten. In einigen Fällen möchten Sie eine Dimensionsreduzierung.

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    import numpy as np
      
    x = [6, 2]
    h = [1, 2, 5, 4]
      
    y = np.convolve(x, h, "valid")
    print(y)
    chevron_right
    
    
    filter_none
    
    
    Ausgabe:
    [14 34 34]