1 / 24 · Concetto
Inferenza e addestramento
Se soltanto i canali di uscita aumentano da tre a sei, come cambiano il conteggio MAC e il numero di bias memorizzati?
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Definisci il calcolo prima del percorso dati
L'inferenza applica pesi fissi, scelti precedentemente, a un ingresso in un passaggio in avanti. L'addestramento calcola anche una funzione di perdita, propaga i gradienti e aggiorna i pesi. Un circuito che esegue una convoluzione in avanti dimostra quindi un'operazione di inferenza; da solo non dimostra l'addestramento. Questo corso costruisce un piccolo percorso di inferenza intera. Hardware per gradienti, ottimizzatori, accuratezza di classificazione e importazione automatica di modelli sono fuori dagli esercizi.
Scrivi un contratto per lotto N, canali di ingresso C, dimensioni spaziali H e W, canali di uscita M e kernel R per S. Usiamo l'ordinamento NCHW. Un elemento di uscita convenzionale accumula C×R×S prodotti. Per un'uscita di forma N×M×Ho×Wo, conta N×M×Ho×Wo×C×R×S MAC. Qui un MAC significa una moltiplicazione con accumulo. Un rapporto di operazioni in virgola mobile può contare separatamente moltiplicazione e addizione, quindi dichiara la regola di conteggio prima di confrontare i rapporti.
Esempio svolto
Prendi N=1, C=2, H=W=5, M=3 e un kernel 3×3, con passo uno e senza riempimento. L'uscita spaziale è 3×3. Ci sono 27 elementi di uscita, ciascuno con 18 prodotti accumulati, per 486 MAC. Un vettore di bias contiene tre numeri memorizzati, uno per canale di uscita, ma il bias viene aggiunto in 27 posizioni di uscita. Riporta queste addizioni separatamente anziché cambiare silenziosamente la definizione di MAC.
L'ordinamento fa parte della correttezza. Una lettura di ingresso con canale prioritario combinata con un'interpretazione dei pesi con spazio prioritario accoppia gli operandi sbagliati anche quando ogni valore è ammesso. Etichetta le uscite di riferimento con coordinate sia di canale sia spaziali. Inizia con un solo lotto, specifica ogni file di tensori ed estendi la dimensione del lotto soltanto dopo che il contratto di base è stabile.
Registra forme accettate, passi, riempimento e intervalli numerici. Rifiuta esplicitamente le richieste non supportate. Un array software flessibile non dimostra che un'implementazione RTL supporti ogni dimensione. Analogamente, l'uscita di riferimento non può misurare frequenza, potenza o accuratezza del modello. Gli esercizi successivi distinguono valori esatti da una stima dei cicli con ipotesi dichiarate. Per le fasi di avanzamento, retropropagazione e aggiornamento dell'addestramento, consulta il tutorial ufficiale PyTorch.
Prova tu
Se soltanto i canali di uscita aumentano da tre a sei, come cambiano il conteggio MAC e il numero di bias memorizzati?
Leggi la spiegazione
Ci sono 54 uscite e 54×18=972 MAC. Memorizza sei bias. La dimensione dell'ingresso rimane uguale; la memoria dei pesi raddoppia.