Couches de convolution (Conv3D)

Fonctions :

  • Conv3D()

    Conv3D est une couche de convolution pour les entrées en trois dimensions, typiquement utilisée pour des données volumétriques ou des séquences d'images (comme des vidéos). Elle applique des filtres convolutifs en 3D pour extraire des caractéristiques spatiales et/ou temporelles.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Conv3D, Flatten, Dense
    import numpy as np

    Attributs :

    Paramètre Type Description Valeur par défaut
    filters int Nombre de filtres de convolution (profondeur de sortie). Obligatoire
    kernel_size int ou tuple Taille du noyau (profondeur, hauteur, largeur). Obligatoire
    strides int ou tuple Pas de déplacement du noyau sur chaque axe. (1, 1, 1)
    padding str 'valid' (pas de remplissage) ou 'same' (remplissage automatique). 'valid'
    activation str ou fonction Fonction d’activation non-linéaire. None
    input_shape tuple Forme de l’entrée (profondeur, hauteur, largeur, canaux). Doit être précisé dans la première couche

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Conv3D, Flatten, Dense
    import numpy as np
    
    # Données simulées : 10 volumes 3D de 10x28x28 pixels avec 1 canal
    X = np.random.rand(10, 10, 28, 28, 1)  # (samples, depth, height, width, channels)
    y = np.random.randint(0, 2, size=(10,))
    
    # Création du modèle
    model = Sequential()
    model.add(Conv3D(filters=8, kernel_size=(3, 3, 3), activation='relu', input_shape=(10, 28, 28, 1)))
    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 utilise Keras (TensorFlow) pour créer un modèle avec une couche de convolution en 3D. NumPy génère des données d'entrée artificielles.
    Création des données
    Les données d'entrée représentent 10 volumes (ou vidéos) de taille 10×28×28 pixels avec un seul canal. Les étiquettes sont binaires pour une tâche de classification.
    Définition du modèle
    La couche `Conv3D` applique 8 filtres 3×3×3 sur les volumes d'entrée. La sortie est aplatie puis transmise à une couche `Dense` avec activation `sigmoid`.
    Compilation
    Le modèle est compilé avec l’optimiseur Adam et une fonction de perte adaptée à la classification binaire.