2016-05-08 33 views
9

Bellow è un esempio di codice dalla documentazione di Keras. Sembra che la prima convoluzione accetti un'immagine 256x256 con 3 canali di colore. Ha 64 filtri di output (penso che questi siano gli stessi delle mappe di feature che ho letto su altri siti, qualcuno può confermarlo per me). Ciò che mi confonde è che la dimensione dell'output è (None, 64, 256, 256). Mi sarei aspettato che fosse (None, 64 * 3, 256, 256) dal momento che avrebbe dovuto fare convoluzioni per ciascuno dei canali di colore. Quello che mi chiedo è come fa Keras a gestire i canali dei colori. I valori vengono calcolati in media insieme (convertiti in scala di grigi) prima di passare attraverso la convoluzione?Cosa fanno i livelli di convoluzione di Keras con i canali di colore?

# apply a 3x3 convolution with 64 output filters on a 256x256 image: 
model = Sequential() 
model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(3, 256, 256))) 
# now model.output_shape == (None, 64, 256, 256) 

# add a 3x3 convolution on top, with 32 output filters: 
model.add(Convolution2D(32, 3, 3, border_mode='same')) 
# now model.output_shape == (None, 32, 256, 256) 

risposta

5

un filtro di misura 3 * 3 con 3 canali di ingresso è costituito da 3 * 3 * 3 parametri, così i pesi dei noccioli di convoluzione per ogni canale sono diversi.

riassume i risultati della convoluzione di ciascun canale (probabilmente insieme a un termine di bias) per ottenere l'output. quindi la forma di uscita è indipendente dal numero di canali di input, ad esempio (Nessuno, 64, 256, 256) anziché (Nessuno, 64 * 3, 256, 256).

Non sono sicuro al 100% ma penso che una mappa caratteristica si riferisca all'output dell'applicazione di un filtro di questo tipo all'ingresso (ad esempio una matrice 256 * 256).

Problemi correlati