Altifigence Academy

1 / 24 · Konzept

Inferenz und Training

Wie verändern sich MAC-Anzahl und Anzahl gespeicherter Biaswerte, wenn nur die Ausgabekanäle von drei auf sechs erhöht werden?

Die Berechnung vor dem Datenpfad definieren

Inferenz wendet feste, zuvor gewählte Gewichte in einem Vorwärtsdurchlauf auf eine Eingabe an. Training berechnet außerdem eine Verlustfunktion, propagiert Gradienten und aktualisiert Gewichte. Eine Schaltung, die Vorwärtsfaltung ausführt, demonstriert daher eine Inferenzoperation; sie demonstriert allein kein Training. Dieser Kurs entwickelt einen kleinen ganzzahligen Inferenzpfad. Gradientenhardware, Optimierer, Klassifikationsgenauigkeit und automatischer Modellimport liegen außerhalb der Übungen.

Schreiben Sie eine Spezifikation für Stapelgröße N, Eingabekanäle C, räumliche Dimensionen H und W, Ausgabekanäle M und Kernel R mal S. Wir verwenden NCHW-Reihenfolge. Ein übliches Ausgabeelement akkumuliert C×R×S Produkte. Für eine Ausgabe der Form N×M×Ho×Wo zählen Sie N×M×Ho×Wo×C×R×S MACs. Hier bedeutet ein MAC eine Multiplikation mit Akkumulation. Ein Bericht über Gleitkommaoperationen kann Multiplikation und Addition getrennt zählen; geben Sie daher vor einem Berichtsvergleich die Zählregel an.

Durchgerechnetes Beispiel

Wählen Sie N=1, C=2, H=W=5, M=3 und einen 3×3-Kernel mit Schrittweite eins ohne Auffüllung. Die räumliche Ausgabe ist 3×3. Es gibt 27 Ausgabeelemente mit jeweils 18 akkumulierten Produkten, also 486 MACs. Ein Biasvektor enthält drei gespeicherte Zahlen, eine pro Ausgabekanal; der Bias wird aber an 27 Ausgabepositionen addiert. Berichten Sie diese Additionen separat, statt die MAC-Definition still zu verändern.

Die Reihenfolge gehört zur Korrektheit. Kanalweise gelesene Eingaben zusammen mit räumlich interpretierter Gewichtsreihenfolge paaren falsche Operanden, auch wenn jeder Wert zulässig ist. Kennzeichnen Sie Referenzausgaben mit Kanal- und Raumkoordinaten. Beginnen Sie mit einem Stapel, spezifizieren Sie jede Tensordatei und erweitern Sie die Stapeldimension erst bei stabilen Grundregeln.

Erfassen Sie akzeptierte Formen, Schrittweiten, Auffüllung und numerische Bereiche. Lehnen Sie nicht unterstützte Anfragen ausdrücklich ab. Ein flexibles Softwarearray beweist nicht, dass eine RTL-Implementierung jede Größe unterstützt. Ebenso kann eine Referenzausgabe weder Frequenz, Leistung noch Modellgenauigkeit messen. Spätere Übungen unterscheiden exakte Werte von einer Taktschätzung mit angegebenen Annahmen. Zu Vorwärts-, Rückwärts- und Aktualisierungsphasen des Trainings siehe das offizielle PyTorch-Tutorial.

Selbst ausprobieren

Wie verändern sich MAC-Anzahl und Anzahl gespeicherter Biaswerte, wenn nur die Ausgabekanäle von drei auf sechs erhöht werden?

Erklärung lesen

Es gibt 54 Ausgaben und 54×18=972 MACs. Speichern Sie sechs Biaswerte. Die Eingabegröße bleibt gleich; der Gewichtsspeicher verdoppelt sich.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.