Altifigence Academy

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?

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.

y[m,h,w]=b[m]+∑c∑r∑sx[c,hSh−Pt+rDh,wSw−Pl+sDw]w[m,c,r,s]y[m,h,w]=b[m]+\sum_c\sum_r\sum_s x[c,hS_h-P_t+rD_h,wS_w-P_l+sD_w]w[m,c,r,s]

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.

La scelta vale per questo browser. Puoi modificarla in qualsiasi momento dal piè di pagina.