9 / 24 · Concetto
Riferimento di convoluzione diretta
Per ingressi [2,3], pesi [4,−1] e bias uno, quale risultato errato si ottiene se il bias viene aggiunto a ogni iterazione dei canali di ingresso?
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Preferisci un riferimento ispezionabile
Un modello di riferimento privilegia un contratto visibile rispetto alla velocità. Itera su canale di uscita, riga di uscita e colonna di uscita; poi riduci canale di ingresso e riga e colonna del kernel. Calcola ogni coordinata di ingresso e fornisci zero fuori dai limiti. Ciò espone la prima uscita errata e il termine esatto che diverge. Non deve imitare l'ordine ottimizzato dei cicli dell'hardware.
Inizializza l'accumulatore con b[m] una sola volta per uscita. Aggiungerlo dentro la riduzione ripeterebbe il bias. Nel modello intero, x e w sono codici centrati e il bias usa la scala del prodotto.
Esempio multicanale svolto
Usa due canali di ingresso 1×1 contenenti due e tre. Il canale di uscita zero ha pesi [4,−1] e bias uno, dando 1+8−3=6. Il canale di uscita uno ha pesi [−2,5] e bias −1, dando −1−4+15=10. Un accumulatore condiviso deve iniziare la seconda uscita indipendentemente anziché conservare il primo risultato.
Per ingresso [1,2,3;4,5,6;7,8,9] e kernel [1,2;3,4], attenditi [37,47;67,77]. I primi prodotti registrati sono 1,4,12,20. I successivi sono 2,6,15,24. Esamina una posizione calcolata a mano; i soli valori finali possono nascondere errori che si compensano.
Confronta il modello diretto con un modello strutturato separatamente basato su patch e prodotto scalare. Condividere la stessa routine di indirizzamento tra entrambi può condividere lo stesso errore. Combina una struttura indipendente con casi manuali. Mantieni riproducibili i semi casuali e conserva un tensore che fallisce. Confronta sia l'accumulatore non convertito sia il codice finale di uscita per localizzare gli errori numerici.
Il nostro model.mjs accetta X[C][H][W] e W[M][C/G][R][S], con un lotto implicito. Verifica tensori rettangolari, compatibilità dei canali e gruppi. Non importa modelli di framework. Usa valori distinti, negativi e pesi asimmetrici anziché un caso tutto a zero. Confronta le convenzioni con ONNX Conv documentando i limiti di questo modello didattico.
Prova tu
Per ingressi [2,3], pesi [4,−1] e bias uno, quale risultato errato si ottiene se il bias viene aggiunto a ogni iterazione dei canali di ingresso?
Leggi la spiegazione
Il risultato corretto è 1+8−3=6. Ripetere il bias due volte dà 8−3+2=7. Inizializza il bias fuori dalla riduzione dei canali.