Layer di pooling in Keras
Keras implementa un'operazione di pooling come un layer che puoi aggiungere alle CNN tra altri layer. In questo esercizio costruirai una rete neurale convoluzionale simile a quella già creata in precedenza:
Convolution => Convolution => Flatten => Dense
Tuttavia, aggiungerai anche un layer di pooling. L'architettura includerà un singolo layer di max pooling tra il layer di convoluzione e il layer denso, con un pooling di 2x2:
Convolution => Max pooling => Convolution => Flatten => Dense
Nel tuo workspace sono disponibili un model di tipo Sequential e gli oggetti Dense, Conv2D, Flatten e MaxPool2D.
Questo esercizio fa parte del corso
Image Modeling with Keras
Istruzioni dell'esercizio
- Aggiungi un layer di convoluzione in input (15 unità, kernel size 2, attivazione
relu). - Aggiungi un'operazione di max pooling (pooling su finestre di dimensione 2x2).
- Aggiungi un altro layer di convoluzione (5 unità, kernel size 2, attivazione
relu). - Appiattisci l'output della seconda convoluzione e aggiungi un layer
Denseper l'output (3 categorie, attivazionesoftmax).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Add a convolutional layer
____(____(15, kernel_size=2, activation='relu',
input_shape=(img_rows, img_cols, 1)))
# Add a pooling operation
____
# Add another convolutional layer
____
# Flatten and feed to output layer
model.add(____)
model.add(____(3, activation='softmax'))
model.summary()