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.