Couches de pooling (AveragePooling3D)

Les couches AveragePooling3D sont utilisées dans les réseaux de neurones pour réduire la dimension des données tridimensionnelles, comme des vidéos, des volumes médicaux ou des cartes de caractéristiques 3D, tout en conservant une moyenne représentative des caractéristiques locales. L’objectif est de simplifier les données et de diminuer le coût computationnel des couches suivantes.

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

Les couches AveragePooling3D sont utilisées dans les architectures CNN 3D pour la classification vidéo, la segmentation volumétrique ou la détection d’objets 3D. Elles sont souvent suivies de couches de convolution, de normalisation ou fully connected.

En résumé, les couches AveragePooling3D permettent de réduire la dimensionnalité des données 3D tout en conservant une moyenne représentative des caractéristiques locales pour l’apprentissage du réseau.

Fonctions :

  • AveragePooling3D()

    AveragePooling3D est une couche de pooling qui applique un pooling moyen sur une fenêtre glissante 3D. Elle est utilisée pour réduire la dimension spatiale (profondeur, hauteur, largeur) de données volumétriques ou séquences spatiales en calculant la moyenne dans chaque fenêtre, ce qui permet de réduire la taille des représentations tout en conservant l’information moyenne locale.

    Importation :

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

    Attributs :

    Paramètre Type Description Valeur par défaut
    pool_size int ou tuple de 3 entiers Taille de la fenêtre de pooling (profondeur, hauteur, largeur). (2, 2, 2)
    strides int ou tuple de 3 entiers 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' (profondeur, hauteur, largeur, canaux) ou 'channels_first' (canaux, profondeur, hauteur, largeur). 'channels_last'

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import AveragePooling3D, Flatten, Dense
    import numpy as np
    
    # Données simulées : 10 volumes 8x8x8 avec 1 canal
    X = np.random.rand(10, 8, 8, 8, 1)
    y = np.random.randint(0, 2, size=(10,))
    
    # Modèle simple avec AveragePooling3D
    model = Sequential()
    model.add(AveragePooling3D(pool_size=(2, 2, 2), input_shape=(8, 8, 8, 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 : `AveragePooling3D`, `Flatten` et `Dense`.
    Création des données
    Les données simulées représentent 10 volumes 3D de taille 8×8×8 avec un canal unique (ex. images médicales, volumes). Les labels sont binaires.
    Définition du modèle
    La couche `AveragePooling3D` réduit la dimension spatiale en calculant la moyenne dans des fenêtres 3D de taille 2×2×2 glissantes. `Flatten` transforme ensuite la sortie 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