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 npAttributs :
Paramètre Type Description Valeur par défaut sizetuple de 3 entiers Facteur d’agrandissement pour les dimensions (profondeur, hauteur, largeur). (2, 2, 2)data_formatstring 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)
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.