Couches normalisatrices (BatchNormalization)
Fonctions :
-
BatchNormalization()
La couche BatchNormalization normalise les activations d'une couche précédente afin d'accélérer et stabiliser l'entraînement des réseaux de neurones. Elle ajuste les sorties pour avoir une moyenne proche de zéro et une variance proche de un sur chaque mini-lot, tout en apprenant des paramètres de décalage et d’échelle.
Importation :
from keras.layers import BatchNormalizationAttributs :
Paramètre Type Description Valeur par défaut axisint Axe sur lequel normaliser (typiquement l’axe des canaux). -1momentumfloat Moment pour la moyenne mobile des statistiques (moyenne et variance). 0.99epsilonfloat Petite valeur ajoutée pour éviter la division par zéro lors de la normalisation. 1e-3centerbool Si True, ajoute un paramètre de biais (offset) appris.Truescalebool Si True, ajoute un paramètre d’échelle appris.TrueExemple de code :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, BatchNormalization, Activation import numpy as np # Données simulées : 100 exemples avec 20 caractéristiques X = np.random.rand(100, 20) y = np.random.randint(0, 2, size=(100, 1)) # Modèle avec BatchNormalization model = Sequential() model.add(Dense(64, input_shape=(20,))) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.summary()
Explication du code :
Importation des bibliothèques
Les couches `Dense`, `BatchNormalization` et `Activation` sont importées depuis Keras pour construire le modèle.Création des données
Les données contiennent 100 exemples avec 20 caractéristiques aléatoires, et une cible binaire.Définition du modèle
Une couche dense est suivie par `BatchNormalization`, qui normalise la sortie. Puis une activation ReLU est appliquée.Compilation
Le modèle est compilé avec Adam et une fonction de perte binaire.