Altifigence Academy

11 / 24 · Concetto

Collegare ReLU e max pooling

Con punto zero di uscita uint8 100, applica ReLU e max pooling 2×2 a [98,103;101,97].

Includi gli stadi di elaborazione successiva

L'inferenza può continuare oltre la convoluzione. ReLU seleziona il maggiore tra ogni valore reale e zero. Il max pooling seleziona il maggiore valore in una finestra spaziale. Uno agisce elemento per elemento; l'altro cambia la dimensione spaziale e richiede una diversa condizione di completamento. Il nostro percorso riquantizza, applica ReLU, poi esegue max pooling 2×2 senza riempimento e con passo due. La convenzione per difetto scarta un'ultima riga o colonna incompleta.

Per uscita quantizzata grezza, lo zero reale è il punto zero di uscita zy. Una scala positiva conserva l'ordinamento, quindi ReLU usa max(q,zy). Confrontare codici uint8 con zero letterale quando zy=128 conserverebbe erroneamente valori reali negativi.

Catena svolta

Gli accumulatori [−2,4;6,−8] con moltiplicatore 0.5 e punto zero zero diventano [−1,2;3,−4]. ReLU produce [0,2;3,0] e il pooling seleziona tre. Sottocampionamento spaziale e riscalatura numerica sono idee separate. Il max pooling sceglie un codice esistente e ne conserva quindi la scala in questo esercizio.

Con punto zero 128, i codici [126,132;134,120] diventano [128,132;134,128] dopo ReLU e producono codice 134 con il pooling. Il riferimento rimane lo zero reale anche quando la rappresentazione in memoria cambia. Il pooling medio introdurrebbe divisione e arrotondamento, quindi non è intercambiabile con questa implementazione.

Una finestra negativa prima di ReLU [−8,−5;−3,−6] ha massimo −3. Inserire erroneamente zero a un confine con riempimento lascia vincere un campione inesistente. Un'implementazione con riempimento deve escludere quella posizione o usare il minimo specificato. La nostra funzione eseguibile di pooling non supporta riempimento.

Fondere gli stadi può ridurre il traffico della memoria intermedia, ma conserva valori osservabili per la verifica. Confronta separatamente accumulatori, codici riquantizzati, valori attivati e uscita del pooling. Un ingresso 4×4 produce quattro valori con pooling; uno 3×3 ne produce uno secondo la regola per difetto dichiarata. Documenta nei test la politica delle finestre incomplete. Consulta le definizioni primarie in ONNX Relu e ONNX MaxPool.

Prova tu

Con punto zero di uscita uint8 100, applica ReLU e max pooling 2×2 a [98,103;101,97].

Leggi la spiegazione

ReLU limita al codice 100, producendo [100,103;101,100]. Il max pooling seleziona 103 e conserva la scala di uscita.

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