Couches de pooling (AveragePooling1D)

Les couches AveragePooling1D sont utilisées dans les réseaux de neurones pour réduire la dimension des données séquentielles tout en conservant une représentation moyenne des caractéristiques locales. L’objectif est de simplifier les séquences et de diminuer le coût computationnel des couches suivantes.

Le principe consiste à diviser la séquence en segments de taille fixe et à calculer la moyenne des valeurs dans chaque segment. Cette opération réduit la taille de la séquence, atténue les variations locales et rend le réseau plus robuste aux perturbations dans les données.

Les couches AveragePooling1D sont utilisées dans les réseaux Conv1D appliqués aux séries temporelles, au texte ou aux signaux audio, et sont souvent suivies de couches fully connected ou d’autres couches de convolution.

En résumé, les couches AveragePooling1D permettent de réduire la dimensionnalité des données séquentielles tout en conservant une moyenne représentative des motifs détectés par le réseau.

Fonctions :

  • AveragePooling1D()

    AveragePooling1D est une couche qui applique un pooling moyen sur une fenêtre glissante 1D. Elle est utilisée principalement pour réduire la dimension des séquences en calculant la moyenne des valeurs dans chaque fenêtre, ce qui permet de lisser les données tout en réduisant leur taille.

    Importation :

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

    Attributs :

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

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import AveragePooling1D, Flatten, Dense
    import numpy as np
    
    # Données simulées : 30 séquences de longueur 10 avec 1 canal
    X = np.random.rand(30, 10, 1)
    y = np.random.randint(0, 2, size=(30,))
    
    # Modèle simple avec AveragePooling1D
    model = Sequential()
    model.add(AveragePooling1D(pool_size=2, input_shape=(10, 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 `AveragePooling1D`, `Flatten`, et `Dense` depuis TensorFlow Keras.
    Création des données
    Les données simulées sont 30 séquences 1D de longueur 10 avec un seul canal. Les labels sont binaires.
    Définition du modèle
    La couche `AveragePooling1D` réduit la longueur des séquences en calculant la moyenne sur des fenêtres de taille 2. Ensuite, `Flatten` convertit 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