Couches de pooling (MaxPooling3D)
Fonctions :
-
MaxPooling3D()
MaxPooling3D est une couche de réduction de dimension qui effectue un max pooling sur des fenêtres 3D glissantes. Elle est utilisée après des couches convolutionnelles 3D pour réduire la profondeur, la hauteur et la largeur des données volumétriques (comme des séquences d’images ou des volumes médicaux) tout en conservant les informations les plus importantes.
Importation :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv3D, MaxPooling3D, Flatten, Dense import numpy as np
Attributs :
Paramètre Type Description Valeur par défaut pool_size
int ou tuple Taille de la fenêtre de pooling (profondeur, hauteur, largeur). (2, 2, 2)
strides
int ou tuple Pas de déplacement de la fenêtre de pooling. None
(équivalent àpool_size
)padding
str 'valid'
(sans remplissage) ou'same'
(conserve la taille).'valid'
data_format
str 'channels_last'
(profondeur, hauteur, largeur, canaux) ou'channels_first'
(canaux, profondeur, hauteur, largeur).'channels_last'
Exemple de code :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv3D, MaxPooling3D, Flatten, Dense import numpy as np # Données simulées : 20 volumes 16x16x16 avec 1 canal X = np.random.rand(20, 16, 16, 16, 1) y = np.random.randint(0, 2, size=(20,)) # Modèle simple avec MaxPooling3D model = Sequential() model.add(Conv3D(filters=16, kernel_size=(3, 3, 3), activation='relu', input_shape=(16, 16, 16, 1))) model.add(MaxPooling3D(pool_size=(2, 2, 2))) model.add(Flatten()) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.summary()
Explication du code :
Importation des bibliothèques
On importe les couches nécessaires de TensorFlow Keras : `Conv3D`, `MaxPooling3D`, `Flatten` et `Dense`.Création des données
Les données simulées représentent 20 volumes 3D de taille 16×16×16 avec 1 canal. Les sorties sont binaires.Définition du modèle
Une couche `Conv3D` extrait des caractéristiques spatiales et temporelles dans les volumes, suivie d’une couche `MaxPooling3D` qui réduit la profondeur, hauteur et largeur en prenant le maximum sur des fenêtres 2×2×2. `Flatten` transforme les données 3D en vecteur pour la couche dense finale.Compilation
Le modèle est compilé pour un problème de classification binaire avec l’optimiseur Adam.