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 npAttributs :
Paramètre Type Description Valeur par défaut kernel_sizeint ou tuple Taille du noyau de convolution (hauteur, largeur). Obligatoire stridesint ou tuple Pas de déplacement de la convolution. (1, 1)paddingstr 'valid'(sans remplissage) ou'same'(conserve la taille de sortie).'valid'depth_multiplierint Nombre de convolutions à appliquer par canal d'entrée. 1activationstr ou fonction Fonction d’activation à appliquer. Noneinput_shapetuple 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.