Couches de convolution (Conv2D)

Les couches Conv2D sont des couches de convolution utilisées pour traiter des données bidimensionnelles, comme des images ou des cartes de caractéristiques. L’objectif est d’extraire automatiquement des motifs spatiaux locaux, tels que des contours, textures ou formes, pour enrichir les représentations apprises par le réseau.

Chaque neurone applique un filtre (ou kernel) bidimensionnel qui glisse sur l’image en calculant une opération de convolution, produisant une carte d’activation qui met en évidence certains motifs. Plusieurs filtres peuvent être utilisés pour détecter différents types de caractéristiques simultanément. La taille du filtre et le stride déterminent la résolution et la portée des motifs capturés.

Les couches Conv2D sont utilisées dans les réseaux de neurones convolutionnels pour des tâches de classification, détection d’objets, segmentation ou génération d’images. Elles sont souvent suivies de couches d’activation, de pooling ou de normalisation.

En résumé, les couches Conv2D permettent d’extraire des motifs spatiaux locaux dans des images ou données 2D, facilitant l’apprentissage de représentations riches et pertinentes pour le réseau.

Fonctions :

  • Conv2D()

    Conv2D est une couche de convolution utilisée pour traiter des données d’entrée en 2D, telles que des images. Elle extrait automatiquement des caractéristiques visuelles (textures, bords, motifs) en appliquant des filtres convolutifs.

    Importation :

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

    Attributs :

    Paramètre Type Description Valeur par défaut
    filters int Nombre de filtres de convolution (profondeur de sortie). Obligatoire
    kernel_size int ou tuple Taille du noyau de convolution (hauteur, largeur). Obligatoire
    strides int ou tuple Pas de déplacement du noyau sur l’image. (1, 1)
    padding str 'valid' (sans remplissage) ou 'same' (avec remplissage pour conserver la taille). 'valid'
    activation str ou fonction Fonction d’activation appliquée à la sortie. None
    input_shape tuple Forme des données d’entrée (hauteur, largeur, canaux). Doit être défini dans la première couche

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Conv2D, Flatten, Dense
    import numpy as np
    
    # Données simulées : 100 images de 28x28 pixels avec 1 canal (niveaux de gris)
    X = np.random.rand(100, 28, 28, 1)
    y = np.random.randint(0, 2, size=(100,))
    
    # Création d’un modèle avec une couche Conv2D
    model = Sequential()
    model.add(Conv2D(filters=16, kernel_size=(3, 3), activation='relu', 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
    La bibliothèque Keras est utilisée pour créer un modèle de réseau de neurones convolutifs. NumPy sert à générer des images simulées.
    Création des données
    On génère 100 images de 28×28 pixels avec un seul canal (images en niveaux de gris). Les étiquettes associées sont binaires (classification à 2 classes).
    Définition du modèle
    La couche `Conv2D` applique 16 filtres 3×3 aux images d’entrée. L’activation ReLU est utilisée pour introduire de la non-linéarité. Ensuite, la sortie est aplanie avec `Flatten` puis transmise à une couche dense avec activation sigmoïde.
    Compilation et résumé
    Le modèle est compilé avec l’optimiseur Adam, une fonction de perte adaptée à la classification binaire, et affiche sa structure avec `summary()`.

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

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

Souscrire maintenant