Couches de convolution (DepthwiseConv2D)

Fonctions :

  • DepthwiseConv2D()

    DepthwiseConv2D applique une convolution indépendante à chaque canal d'entrée (pas de combinaison entre les canaux). Elle est utilisée dans les architectures efficaces comme MobileNet pour réduire le nombre de paramètres et le coût computationnel.

    Importation :

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

    Attributs :

    Paramètre Type Description Valeur par défaut
    kernel_size int ou tuple Taille du noyau de convolution (hauteur, largeur). Obligatoire
    strides int ou tuple Pas de déplacement de la convolution. (1, 1)
    padding str 'valid' (sans remplissage) ou 'same' (conserve la taille de sortie). 'valid'
    depth_multiplier int Nombre de convolutions à appliquer par canal d'entrée. 1
    activation str ou fonction Fonction d’activation à appliquer. None
    input_shape tuple Forme des données d’entrée (hauteur, largeur, canaux). À spécifier dans la première couche

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import DepthwiseConv2D, Flatten, Dense
    import numpy as np
    
    # Données simulées : 100 images 28x28 avec 3 canaux
    X = np.random.rand(100, 28, 28, 3)
    y = np.random.randint(0, 5, size=(100,))
    
    # Modèle simple avec DepthwiseConv2D
    model = Sequential()
    model.add(DepthwiseConv2D(kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 3)))
    model.add(Flatten())
    model.add(Dense(5, activation='softmax'))
    
    model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
    model.summary()

    Explication du code :

    Importation des bibliothèques
    On utilise `DepthwiseConv2D` depuis Keras, ainsi que `Dense` et `Flatten` pour la construction du modèle.
    Création des données
    Les données d’entrée sont des images simulées de taille 28×28 avec 3 canaux (par exemple, des images RGB). Les étiquettes correspondent à une classification en 5 classes.
    Définition du modèle
    La couche `DepthwiseConv2D` applique des filtres séparés pour chaque canal d'entrée. Cela réduit considérablement le nombre de paramètres par rapport à une convolution classique.
    Compilation
    Le modèle est compilé avec l’optimiseur Adam pour un problème de classification multi-classes.