Diffusers documentation

UNet1DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

UNet1DModel

Le modèle UNet a été initialement introduit par Ronneberger et al. pour la segmentation d’images biomédicales, mais il est également couramment utilisé dans 🤗 Diffusers car il produit des images de la même taille que l’entrée. C’est l’un des composants les plus importants d’un système de diffusion, car il facilite le processus de diffusion proprement dit. Il existe plusieurs variantes du modèle UNet dans 🤗 Diffusers, en fonction de son nombre de dimensions et de savoir s’il s’agit ou non d’un modèle conditionnel. Il s’agit ici d’un modèle UNet 1D.

L'abstract de l'article est :

Il est largement admis que l’entraînement réussi de réseaux profonds nécessite des milliers d’échantillons d’entraînement annotés. Dans cet article, nous présentons un réseau et une stratégie d’entraînement qui reposent sur l’utilisation intensive de l’augmentation de données afin d’exploiter plus efficacement les échantillons annotés disponibles. L’architecture se compose d’un chemin contractant pour capturer le contexte et d’un chemin d’expansion symétrique permettant une localisation précise. Nous montrons qu’un tel réseau peut être entraîné de bout en bout à partir de très peu d’images et qu’il surpasse la meilleure méthode antérieure (un réseau convolutif à fenêtre glissante) lors du défi ISBI de segmentation de structures neuronales dans des piles de microscopie électronique. En utilisant le même réseau entraîné sur des images de microscopie en lumière transmise (contraste de phase et DIC), nous avons remporté le défi ISBI de suivi cellulaire 2015 dans ces catégories avec une large avance. De plus, le réseau est rapide. La segmentation d’une image de 512x512 prend moins d’une seconde sur un GPU récent. L’implémentation complète (basée sur Caffe) et les réseaux entraînés sont disponibles à l’adresse http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net.

UNet1DModel

classe diffusers.UNet1DModel

< >

( sample_size: int = 65536sample_rate: int | None = Nonein_channels: int = 2out_channels: int = 2extra_in_channels: int = 0time_embedding_type: str = 'fourier'time_embedding_dim: int | None = Noneflip_sin_to_cos: bool = Trueuse_timestep_embedding: bool = Falsefreq_shift: float = 0.0down_block_types: tuple = ('DownBlock1DNoSkip', 'DownBlock1D', 'AttnDownBlock1D')up_block_types: tuple = ('AttnUpBlock1D', 'UpBlock1D', 'UpBlock1DNoSkip')mid_block_type: str = 'UNetMidBlock1D'out_block_type: str = Noneblock_out_channels: tuple = (32, 32, 64)act_fn: str = Nonenorm_num_groups: int = 8layers_per_block: int = 1downsample_each_block: bool = False )

Paramètres

  • sample_size (int, facultatif) — Longueur par défaut de l'échantillon. Doit être adaptable à l'exécution.
  • in_channels (int, facultatif, par défaut 2) — Nombre de canaux dans l'échantillon d'entrée.
  • out_channels (int, facultatif, par défaut 2) — Nombre de canaux dans la sortie.
  • extra_in_channels (int, facultatif, valeur par défaut 0) — Nombre de canaux supplémentaires à ajouter à l’entrée du premier bloc de descente. Utile lorsque les données d’entrée comportent plus de canaux que ce pour quoi le modèle a été initialement conçu.
  • time_embedding_type (str, facultatif, par défaut "fourier") — Type d’incorporation temporelle à utiliser.
  • freq_shift (float, facultatif, valeur par défaut 0.0) — Décalage de fréquence pour l’encodage temporel de Fourier.
  • flip_sin_to_cos (bool, facultatif, par défaut False) — Indique s'il faut inverser sin en cos pour l'incorporation temporelle de Fourier.
  • down_block_types (tuple[str], facultatif, par défaut ("DownBlock1DNoSkip", "DownBlock1D", "AttnDownBlock1D")) — tuple de types de blocs de sous-échantillonnage.
  • up_block_types (tuple[str], facultatif, par défaut ("AttnUpBlock1D", "UpBlock1D", "UpBlock1DNoSkip")) — tuplet de types de blocs de suréchantillonnage.
  • block_out_channels (tuple[int], facultatif, par défaut (32, 32, 64)) — tuplet des canaux de sortie des blocs.
  • mid_block_type (str, facultatif, par défaut "UNetMidBlock1D") — Type de bloc pour la partie centrale du UNet.
  • out_block_type (str, facultatif, par défaut None) — Bloc de traitement de sortie facultatif de UNet.
  • act_fn (str, facultatif, par défaut None) — Fonction d'activation facultative dans les blocs UNet.
  • norm_num_groups (int, facultatif, valeur par défaut 8) — Le nombre de groupes pour la normalisation.
  • layers_per_block (int, facultatif, valeur par défaut 1) — Le nombre de couches par bloc.
  • downsample_each_block (int, facultatif, par défaut False) — Fonctionnalité expérimentale permettant d'utiliser un UNet sans remontée en résolution.

Un modèle UNet 1D qui prend un échantillon bruité et un pas de temps en entrée et renvoie une sortie de la même forme que l'échantillon.

Ce modèle hérite de ModelMixin. Consultez la documentation de la classe parente pour ses méthodes génériques implémentées pour tous les modèles (téléchargement ou sauvegarde, par exemple).

forward

< >

( sample: Tensortimestep: typing.Union[torch.Tensor, float, int]return_dict: bool = True ) → UNet1DOutput or tuple

Paramètres

  • sample (torch.Tensor) — Le tenseur d'entrée bruité de forme (batch_size, num_channels, sample_size).
  • timestep (torch.Tensor ou float ou int) — Le nombre de pas de temps pour débruitiser une entrée.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un UNet1DOutput plutôt qu'un simple tuple.

Retourne

UNet1DOutput ou tuple

Si return_dict est True, un UNet1DOutput est renvoyé, sinon un tuple est renvoyé dont le premier élément est le tenseur d’échantillon.

La méthode forward du UNet1DModel.

UNet1DOutput

classe diffusers.models.unets.unet_1d.UNet1DOutput

< >

( sample: Tensor )

Paramètres

  • sample (torch.Tensor de forme (batch_size, num_channels, sample_size)) — Les états cachés en sortie de la dernière couche du modèle.

La sortie de UNet1DModel.

Update on GitHub