Couches de rééchantillonnage (UpSampling3D)

Les couches UpSampling3D sont utilisées dans les réseaux de neurones pour augmenter la dimension des données tridimensionnelles, comme des vidéos, des volumes médicaux ou des cartes de caractéristiques 3D. L’objectif est de restaurer une résolution plus grande à partir de représentations compressées, par exemple après des opérations de pooling ou de convolution.

Le principe consiste à répéter ou interpoler les valeurs le long des trois axes du volume, augmentant ainsi la taille spatiale et/ou temporelle des données. Cette opération est souvent utilisée dans les architectures de segmentation volumétrique, les autoencodeurs 3D ou les réseaux génératifs pour reconstruire des données de grande dimension.

Les couches UpSampling3D sont utilisées pour générer ou restaurer des volumes tridimensionnels, améliorer la résolution spatiale ou temporelle et faciliter la reconstruction de données complexes.

En résumé, les couches UpSampling3D permettent d’augmenter la dimension des données 3D, facilitant la reconstruction ou la génération de volumes à partir de représentations compressées.

Fonctions :

  • UpSampling3D()

    La couche UpSampling3D augmente la résolution volumétrique d’une entrée 3D (profondeur, hauteur, largeur) en répétant les valeurs selon ces trois dimensions. Elle est utilisée dans les réseaux traitant des données volumétriques (ex : séquences vidéo, IRM 3D) pour augmenter la taille spatiale des tenseurs.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import UpSampling3D
    import numpy as np

    Attributs :

    Paramètre Type Description Valeur par défaut
    size tuple de 3 entiers Facteur d’agrandissement pour les dimensions (profondeur, hauteur, largeur). (2, 2, 2)
    data_format string Format des données, soit "channels_last" (batch, profondeur, hauteur, largeur, canaux) ou "channels_first" (batch, canaux, profondeur, hauteur, largeur). "channels_last"

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import UpSampling3D
    import numpy as np
    
    # Données simulées : batch de 1 volume, taille 2x2x2, 1 canal
    X = np.array([[[[[1], [2]],
                    [[3], [4]]],
                   [[[5], [6]],
                    [[7], [8]]]]])
    
    # Modèle avec UpSampling3D
    model = Sequential()
    model.add(UpSampling3D(size=(2, 2, 2), input_shape=(2, 2, 2, 1)))
    
    # Passage des données dans la couche
    output = model.predict(X)
    print(output.shape)  # Affiche la nouvelle forme
    print(output)
    Résultat du code

    Explication du code :

    Importation des bibliothèques
    On importe la couche `UpSampling3D` et les modules nécessaires.
    Création des données
    Les données représentent un batch avec un volume 3D de dimensions 2x2x2 et un seul canal.
    Définition du modèle
    Le modèle contient uniquement la couche `UpSampling3D` avec un facteur d’agrandissement de 2 sur chaque dimension.
    Exécution
    Le passage des données produit un volume 3D agrandi à 4x4x4 en répétant chaque valeur 2 fois sur profondeur, hauteur, et largeur.

⚠️ Ce contenu est réservé aux membres Premium

Abonnez-vous pour débloquer cette page et accéder à tous nos contenus exclusifs.

Souscrire maintenant