La dimensione di output di una convoluzione nel deep learning dipende da molteplici fattori
- la dimensione del filtro (aka kernel)
- il riempimento (se aggiungi o meno zeri attorno all'immagine e quanti)
- i numeri di filtro che usi
- il passo
La dipendenza più semplice è quella sul numero di filtri N
. Ti dà il numero di mappe caratteristiche che il tuo output ha. Per l'ingresso che può essere i canali RGB, ovvero 3, per l'uscita questo numero può essere scelto liberamente.
Il prossimo fattore è lo zero padding. Se si utilizza una dimensione del filtro di (3,3) e un'imbottitura "valida", ovvero l'aggiunta di NO zeri attorno all'immagine, si ottiene un output di dimensione.
(100, 100, 3) -> (98, 98, N)
Poiché si utilizza un passo di 1. Se si sposta il filtro sull'immagine alla fine dell'immagine in ciascuna direzione, il filtro colpirà il bordo dopo 98 passaggi.
Tuttavia, se usi il padding "SAME" compensi la dimensione del filtro, nel caso di una dimensione del filtro di (3,3) che corrisponderebbe a una linea di zeri attorno all'immagine, finirai con:
(100, 100, 3) -> (100, 100, N)
Con un passo di 2, ad esempio, si sposta la posizione del filtro di due pixel. Pertanto, ottieni
(100, 100, 3) -> (50, 50, N)