10 / 24 · Konzept
im2col und Matrixmultiplikation
Berechnen Sie für H=W=4,C=1 und einen 3×3-Kernel ohne Auffüllung die ursprünglichen Eingabeelemente, P,K und die Elemente der erweiterten Fenstermatrix.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Die Operation umformulieren
im2col flacht jedes Eingabefenster zu einem Vektor für Matrixmultiplikation ab. Wir legen ein Fenster pro Zeile ab. Matrix A hat P×K Elemente mit P=HoWo und K=CRS. Abgeflachte Gewichte bilden die Spalten der Matrix B der Form K×M. Das Produkt AB hat die Form P×M. Andere Konventionen legen Fenster in Spalten ab; bestimmen Sie die Achsen, statt sie aus dem Namen abzuleiten.
Sie können die vollständige Fenstermatrix speichern oder Fenster bei Bedarf erzeugen. Beide Verfahren können dieselben Zahlen mit unterschiedlichem Speicher- und Bandbreitenbedarf liefern. Eine Matrixmultiplikationseinheit erfordert nicht, eine vollständige erweiterte Matrix in externen Speicher zu schreiben.
Durchgerechnete Matrix
Für [1,2,3;4,5,6;7,8,9] und 2×2-Fenster hat A die Zeilen [1,2,4,5], [2,3,5,6], [4,5,7,8] und [5,6,8,9]. Kernel [1,2;3,4] ergibt Gewichtsspalte [1,2,3,4]. Die vier Skalarprodukte sind 37,47,67,77. Somit ergibt 4×4 multipliziert mit 4×1 die Form 4×1, die wieder in eine 2×2-Ausgabe umgeformt wird.
Die ursprüngliche Eingabe enthält neun Elemente, die erweiterte Matrix sechzehn. Der mittlere Wert fünf erscheint viermal, der Eckwert eins einmal. Räumliche Wiederverwendung wird in einer gespeicherten Darstellung zur Verdopplung. Ein Gewichtsvektor wird für alle vier Fenster wiederverwendet. Berechnen Sie P×K und vergleichen Sie es vor der Speicherzuordnung mit C×H×W. Bei größeren Ausgaberegionen kann die Vervielfachung beträchtlich werden.
Flachen Sie bei mehreren Kanälen Fenster und Gewichte in derselben c,r,s-Reihenfolge ab. Ein 1×1-Fenster mit zwei Kanälen ist [x0,x1]; nur die Gewichtskanäle umzukehren verändert das Ergebnis. Beginnen Sie mit asymmetrischen Kanalwerten. Gruppierte Faltung bildet getrennte Gruppenvektoren, statt unterschiedslos alle Eingabekanäle einzuschließen.
Übereinstimmung mit einem direkten Modell verifiziert arithmetische Werte, keine physischen Speicherübertragungen und keinen gleichzeitigen PE-Betrieb. Das nächste Kapitel erzeugt gleichwertige Fenster aus einem Datenstrom; spätere Kachelung vermeidet die Speicherung eines vollständig erweiterten Tensors. Erfassen Sie neben Ausgabewerten auch Zwischenmatrixgröße und Vervielfachung, damit Abbildungsaufwand sichtbar bleibt.
Selbst ausprobieren
Berechnen Sie für H=W=4,C=1 und einen 3×3-Kernel ohne Auffüllung die ursprünglichen Eingabeelemente, P,K und die Elemente der erweiterten Fenstermatrix.
Erklärung lesen
Die Eingabe hat sechzehn Elemente. Die Ausgabe ist 2×2, also P=4 und K=9. Eine vollständige Fenstermatrix hat 36 Elemente. Fenster bei Bedarf können die Speicherung aller 36 vermeiden.