Couches de pooling (AveragePooling2D)

Les couches AveragePooling2D sont utilisées dans les réseaux de neurones convolutionnels pour réduire la dimension des images ou cartes de caractéristiques tout en conservant une représentation moyenne des motifs locaux. L’objectif est de simplifier les données spatiales et de diminuer le coût computationnel des couches suivantes.

Le principe consiste à diviser l’image ou la carte de caractéristiques en fenêtres de taille fixe et à calculer la moyenne des valeurs dans chaque fenêtre. Cette opération réduit la taille spatiale des données, atténue les variations locales et rend le réseau plus robuste aux perturbations.

Les couches AveragePooling2D sont utilisées dans les architectures CNN pour la classification d’images, la détection d’objets et la segmentation. Elles sont souvent suivies de couches de convolution, de normalisation ou de fully connected.

En résumé, les couches AveragePooling2D permettent de réduire la dimensionnalité spatiale tout en conservant une moyenne représentative des caractéristiques locales détectées par le réseau.

Fonctions :

  • AveragePooling2D()

    AveragePooling2D est une couche de pooling qui applique un pooling moyen sur une fenêtre 2D glissante. Elle est utilisée principalement pour réduire la hauteur et la largeur des images ou des cartes de caractéristiques tout en conservant les informations moyennes dans chaque fenêtre, ce qui permet de lisser les données et réduire la taille des représentations.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import AveragePooling2D, Flatten, Dense
    import numpy as np

    Attributs :

    Paramètre Type Description Valeur par défaut
    pool_size int ou tuple Taille de la fenêtre de pooling (hauteur, largeur). (2, 2)
    strides int ou tuple Pas de déplacement de la fenêtre de pooling. None (équivalent à pool_size)
    padding str 'valid' (sans remplissage) ou 'same' (conserve la taille). 'valid'
    data_format str 'channels_last' (hauteur, largeur, canaux) ou 'channels_first' (canaux, hauteur, largeur). 'channels_last'

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import AveragePooling2D, Flatten, Dense
    import numpy as np
    
    # Données simulées : 25 images 28x28 avec 1 canal
    X = np.random.rand(25, 28, 28, 1)
    y = np.random.randint(0, 2, size=(25,))
    
    # Modèle simple avec AveragePooling2D
    model = Sequential()
    model.add(AveragePooling2D(pool_size=(2, 2), input_shape=(28, 28, 1)))
    model.add(Flatten())
    model.add(Dense(1, activation='sigmoid'))
    
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
    model.summary()
    Résultat du code

    Explication du code :

    Importation des bibliothèques
    On importe les couches nécessaires de TensorFlow Keras : `AveragePooling2D`, `Flatten` et `Dense`.
    Création des données
    Les données simulées représentent 25 images 2D de taille 28×28 avec un seul canal (comme des images en niveaux de gris). Les étiquettes sont binaires.
    Définition du modèle
    La couche `AveragePooling2D` réduit la hauteur et la largeur des images en calculant la moyenne sur des fenêtres 2×2 glissantes. `Flatten` transforme ensuite la sortie 2D en vecteur pour la couche dense finale.
    Compilation
    Le modèle est compilé pour un problème de classification binaire avec l’optimiseur Adam.

⚠️ Ce contenu est réservé aux membres Premium

Abonnez-vous pour débloquer cette page et accéder à tous nos contenus exclusifs.

Souscrire maintenant