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 BatchNormalization
Attributs :
Paramètre Type Description Valeur par défaut axis
int Axe sur lequel normaliser (typiquement l’axe des canaux). -1
momentum
float Moment pour la moyenne mobile des statistiques (moyenne et variance). 0.99
epsilon
float Petite valeur ajoutée pour éviter la division par zéro lors de la normalisation. 1e-3
center
bool Si True
, ajoute un paramètre de biais (offset) appris.True
scale
bool Si True
, ajoute un paramètre d’échelle appris.True
Exemple 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.