Écrivez votre propre opération de mise en commun
Comme nous l'avons vu précédemment, les CNN peuvent comporter de nombreux paramètres. Des couches de regroupement sont souvent ajoutées entre les couches convolutives d'un réseau neuronal afin de résumer leurs sorties de manière condensée et de réduire le nombre de paramètres dans la couche suivante du réseau. Cela peut nous aider si nous souhaitons former le réseau plus rapidement ou si nous ne disposons pas de suffisamment de données pour apprendre un très grand nombre de paramètres.
Une couche de mise en commun peut être décrite comme un type particulier de convolution. Pour chaque fenêtre dans l'entrée, il recherche la valeur maximale de pixel et ne transmet que ce pixel. Dans cet exercice, vous allez écrire votre propre opération de max pooling, en vous basant sur le code que vous avez précédemment utilisé pour écrire une opération de convolution bidimensionnelle.
Cet exercice fait partie du cours
Modélisation d'images avec Keras
Instructions
- Indexez le tableau d'entrée (
im
) et sélectionnez la fenêtre appropriée. - Veuillez identifier la valeur maximale dans cette fenêtre.
- Veuillez allouer cela à la bonne entrée dans le tableau de sortie (
result
).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Result placeholder
result = np.zeros((im.shape[0]//2, im.shape[1]//2))
# Pooling operation
for ii in range(result.shape[0]):
for jj in range(result.shape[1]):
result[ii, jj] = np.max(____)