Buckets:
| # UNet2DModel | |
| O modelo [UNet](https://huggingface.co/papers/1505.04597) foi originalmente introduzido por Ronneberger et al. para segmentação de imagens biomédicas, mas também é comumente usado no 🤗 Diffusers porque ele gera imagens com o mesmo tamanho da entrada. Ele é um dos componentes mais importantes de um sistema de difusão, pois facilita o processo de difusão em si. Existem várias variantes do modelo UNet no 🤗 Diffusers, dependendo do número de dimensões e de se trata de um modelo condicional ou não. Este é um modelo UNet 2D. | |
| O resumo do artigo é: | |
| *Há amplo consenso de que o treinamento bem-sucedido de redes profundas requer milhares de amostras de treinamento anotadas. Neste artigo, apresentamos uma rede e uma estratégia de treinamento que dependem do uso intenso de aumento de dados para utilizar as amostras anotadas disponíveis de forma mais eficiente. A arquitetura consiste em um caminho contrativo para capturar o contexto e um caminho expansivo simétrico que permite a localização precisa. Mostramos que uma rede como essa pode ser treinada de ponta a ponta a partir de muito poucas imagens e supera o melhor método anterior (uma rede convolucional de janela deslizante) no desafio ISBI para segmentação de estruturas neuronais em pilhas de microscopia eletrônica. Usando a mesma rede treinada em imagens de microscopia de luz transmitida (contraste de fase e DIC), vencemos o desafio de rastreamento celular ISBI 2015 nessas categorias por uma grande margem. Além disso, a rede é rápida. A segmentação de uma imagem de 512x512 leva menos de um segundo em uma GPU recente. A implementação completa (baseada em Caffe) e as redes treinadas estão disponíveis em http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net.* | |
| ## UNet2DModel[[diffusers.UNet2DModel]] | |
| #### diffusers.UNet2DModel[[diffusers.UNet2DModel]] | |
| ```python | |
| diffusers.UNet2DModel(sample_size: int | tuple[int, int] | None = None, in_channels: int = 3, out_channels: int = 3, center_input_sample: bool = False, time_embedding_type: str = 'positional', time_embedding_dim: int | None = None, freq_shift: int = 0, flip_sin_to_cos: bool = True, down_block_types: tuple[str, ...] = ('DownBlock2D', 'AttnDownBlock2D', 'AttnDownBlock2D', 'AttnDownBlock2D'), mid_block_type: str | None = 'UNetMidBlock2D', up_block_types: tuple[str, ...] = ('AttnUpBlock2D', 'AttnUpBlock2D', 'AttnUpBlock2D', 'UpBlock2D'), block_out_channels: tuple[int, ...] = (224, 448, 672, 896), layers_per_block: int = 2, mid_block_scale_factor: float = 1, downsample_padding: int = 1, downsample_type: str = 'conv', upsample_type: str = 'conv', dropout: float = 0.0, act_fn: str = 'silu', attention_head_dim: int | None = 8, norm_num_groups: int = 32, attn_norm_num_groups: int | None = None, norm_eps: float = 1e-05, resnet_time_scale_shift: str = 'default', add_attention: bool = True, class_embed_type: str | None = None, num_class_embeds: int | None = None, num_train_timesteps: int | None = None) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_2d.py#L39) | |
| **Parâmetros:** | |
| sample_size (`int` ou `tuple[int, int]`, *opcional*, padrão `None`) : Altura e largura da amostra de entrada/saída. As dimensões devem ser múltiplos de `2 ** (len(block_out_channels) - 1)`. | |
| in_channels (`int`, *opcional*, padrão 3) : Número de canais na amostra de entrada. | |
| out_channels (`int`, *opcional*, padrão 3) : Número de canais na saída. | |
| center_input_sample (`bool`, *opcional*, padrão `False`) : Se deve centralizar a amostra de entrada. | |
| time_embedding_type (`str`, *opcional*, padrão `"positional"`) : Tipo de incorporação de tempo a ser usado. | |
| freq_shift (`int`, *opcional*, padrão 0) : Deslocamento de frequência para incorporação temporal de Fourier. | |
| flip_sin_to_cos (`bool`, *opcional*, padrão `True`) : Se deve inverter sin para cos na incorporação de tempo de Fourier. | |
| down_block_types (`tuple[str]`, *opcional*, padrão `("DownBlock2D", "AttnDownBlock2D", "AttnDownBlock2D", "AttnDownBlock2D")`) : tupla de tipos de blocos de downsampling. | |
| mid_block_type (`str`, *opcional*, padrão `"UNetMidBlock2D"`) : Tipo de bloco para o meio do UNet, pode ser `UNetMidBlock2D` ou `None`. | |
| up_block_types (`tuple[str]`, *opcional*, padrão `("AttnUpBlock2D", "AttnUpBlock2D", "AttnUpBlock2D", "UpBlock2D")`) : tupla de tipos de blocos de upsample. | |
| block_out_channels (`tuple[int]`, *opcional*, padrão `(224, 448, 672, 896)`) : tupla de canais de saída dos blocos. | |
| layers_per_block (`int`, *opcional*, padrão `2`) : O número de camadas por bloco. | |
| mid_block_scale_factor (`float`, *opcional*, padrão `1`) : O fator de escala para o bloco intermediário. | |
| downsample_padding (`int`, *opcional*, padrão `1`) : O padding para a convolução de downsample. | |
| downsample_type (`str`, *opcional*, padrão `conv`) : O tipo de downsample para as camadas de downsampling. Escolha entre "conv" e "resnet" | |
| upsample_type (`str`, *opcional*, padrão `conv`) : O tipo de upsample para as camadas de upsampling. Escolha entre "conv" e "resnet" | |
| dropout (`float`, *opcional*, padrão 0.0) : A probabilidade de dropout a ser utilizada. | |
| act_fn (`str`, *opcional*, padrão `"silu"`) : A função de ativação a ser utilizada. | |
| attention_head_dim (`int`, *opcional*, padrão `8`) : A dimensão da cabeça de atenção. | |
| norm_num_groups (`int`, *opcional*, padrão `32`) : O número de grupos para normalização. | |
| attn_norm_num_groups (`int`, *opcional*, padrão `None`) : Se definido como um inteiro, uma camada de group norm será criada na camada `Attention` do bloco intermediário com o número de grupos especificado. Se mantido como `None`, a camada de group norm será criada apenas se `resnet_time_scale_shift` estiver definido como `default`, e, se criada, terá `norm_num_groups` grupos. | |
| norm_eps (`float`, *opcional*, padrão `1e-5`) : O epsilon para normalização. | |
| resnet_time_scale_shift (`str`, *opcional*, padrão `"default"`) : Configuração de deslocamento de escala de tempo para blocos ResNet (veja `ResnetBlock2D`). Escolha entre `default` ou `scale_shift`. | |
| class_embed_type (`str`, *opcional*, padrão `None`) : O tipo de incorporação de classe a ser usado, que é somado às incorporações de tempo. Escolha entre `None`, `"timestep"` ou `"identity"`. | |
| num_class_embeds (`int`, *opcional*, padrão `None`) : Dimensão de entrada da matriz de incorporação aprendível a ser projetada para `time_embed_dim` ao realizar condicionamento de classe com `class_embed_type` igual a `None`. | |
| Um modelo UNet 2D que recebe uma amostra com ruído e um timestep e retorna uma saída com a forma da amostra. | |
| Este modelo herda de [ModelMixin](/docs/diffusers/main/pt/api/models/overview#diffusers.ModelMixin). Consulte a documentação da superclasse para seus métodos genéricos implementados para todos os modelos (como download ou salvamento). | |
| #### forward[[diffusers.UNet2DModel.forward]] | |
| ```python | |
| forward(sample: Tensor, timestep: typing.Union[torch.Tensor, float, int], class_labels: typing.Optional[torch.Tensor] = None, return_dict: bool = True) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_2d.py#L249) | |
| **Parâmetros:** | |
| sample (`torch.Tensor`) : O tensor de entrada com ruído, com a seguinte forma `(batch, channel, height, width)`. | |
| timestep (`torch.Tensor` ou `float` ou `int`) : O número de timesteps para desruidar uma entrada. | |
| class_labels (`torch.Tensor`, *opcional*, padrão `None`) : Rótulos de classe opcionais para condicionamento. Seus embeddings serão somados aos embeddings de timestep. | |
| return_dict (`bool`, *opcional*, padrão `True`) : Se deve ou não retornar um [UNet2DOutput](/docs/diffusers/main/pt/api/models/unet2d#diffusers.models.unets.unet_2d.UNet2DOutput) em vez de uma tupla simples. | |
| **Retorna:** [UNet2DOutput](/docs/diffusers/main/pt/api/models/unet2d#diffusers.models.unets.unet_2d.UNet2DOutput) ou `tuple` | |
| Se `return_dict` for True, um [UNet2DOutput](/docs/diffusers/main/pt/api/models/unet2d#diffusers.models.unets.unet_2d.UNet2DOutput) é retornado; caso contrário, uma `tuple` é retornada, em que o primeiro elemento é o tensor da amostra. | |
| O método forward do [UNet2DModel](/docs/diffusers/main/pt/api/models/unet2d#diffusers.UNet2DModel). | |
| ## UNet2DOutput[[diffusers.models.unets.unet_2d.UNet2DOutput]] | |
| #### diffusers.models.unets.unet_2d.UNet2DOutput[[diffusers.models.unets.unet_2d.UNet2DOutput]] | |
| ```python | |
| diffusers.models.unets.unet_2d.UNet2DOutput(sample: Tensor) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_2d.py#L27) | |
| **Parâmetros:** | |
| sample (`torch.Tensor` de forma `(batch_size, num_channels, height, width)`) : Os estados ocultos de saída da última camada do modelo. | |
| A saída de [UNet2DModel](/docs/diffusers/main/pt/api/models/unet2d#diffusers.UNet2DModel). | |
Xet Storage Details
- Size:
- 8.91 kB
- Xet hash:
- f7a5312a7c685683a638695b27e056a83fe6ead240a999842d374567d0a0539e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.