Buckets:

mishig's picture
|
download
raw
6.77 kB
# UNet1DModel
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 1D.
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.*
## UNet1DModel[[diffusers.UNet1DModel]]
#### diffusers.UNet1DModel[[diffusers.UNet1DModel]]
```python
diffusers.UNet1DModel(sample_size: int = 65536, sample_rate: int | None = None, in_channels: int = 2, out_channels: int = 2, extra_in_channels: int = 0, time_embedding_type: str = 'fourier', time_embedding_dim: int | None = None, flip_sin_to_cos: bool = True, use_timestep_embedding: bool = False, freq_shift: float = 0.0, down_block_types: tuple[str, ...] = ('DownBlock1DNoSkip', 'DownBlock1D', 'AttnDownBlock1D'), up_block_types: tuple[str, ...] = ('AttnUpBlock1D', 'UpBlock1D', 'UpBlock1DNoSkip'), mid_block_type: str = 'UNetMidBlock1D', out_block_type: str = None, block_out_channels: tuple[int, ...] = (32, 32, 64), act_fn: str = None, norm_num_groups: int = 8, layers_per_block: int = 1, downsample_each_block: bool = False)
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_1d.py#L40)
**Parâmetros:**
sample_size (`int`, *opcional*) : Comprimento padrão da amostra. Deve ser adaptável em tempo de execução.
in_channels (`int`, *opcional*, padrão 2) : Número de canais na amostra de entrada.
out_channels (`int`, *opcional*, padrão 2) : Número de canais na saída.
extra_in_channels (`int`, *opcional*, padrão 0) : Número de canais adicionais a serem adicionados à entrada do primeiro bloco de downsampling. Útil para casos em que os dados de entrada possuem mais canais do que o modelo foi inicialmente projetado para lidar.
time_embedding_type (`str`, *opcional*, padrão `"fourier"`) : Tipo de incorporação de tempo a ser usado.
freq_shift (`float`, *opcional*, padrão 0.0) : Deslocamento de frequência para incorporação temporal de Fourier.
flip_sin_to_cos (`bool`, *opcional*, padrão `False`) : Se deve inverter sin para cos na incorporação de tempo de Fourier.
down_block_types (`tuple[str]`, *opcional*, padrão `("DownBlock1DNoSkip", "DownBlock1D", "AttnDownBlock1D")`) : tupla de tipos de blocos de downsampling.
up_block_types (`tuple[str]`, *opcional*, padrão `("AttnUpBlock1D", "UpBlock1D", "UpBlock1DNoSkip")`) : tupla de tipos de blocos de upsample.
block_out_channels (`tuple[int]`, *opcional*, padrão `(32, 32, 64)`) : tupla de canais de saída dos blocos.
mid_block_type (`str`, *opcional*, padrão `"UNetMidBlock1D"`) : Tipo de bloco para o meio do UNet.
out_block_type (`str`, *opcional*, padrão `None`) : Bloco opcional de processamento de saída da UNet.
act_fn (`str`, *opcional*, padrão `None`) : Função de ativação opcional nos blocos do UNet.
norm_num_groups (`int`, *opcional*, padrão 8) : O número de grupos para normalização.
layers_per_block (`int`, *opcional*, padrão 1) : O número de camadas por bloco.
downsample_each_block (`int`, *opcional*, padrão `False`) : Funcionalidade experimental para usar um UNet sem upsampling.
Um modelo UNet 1D 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.UNet1DModel.forward]]
```python
forward(sample: Tensor, timestep: typing.Union[torch.Tensor, float, int], return_dict: bool = True)
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_1d.py#L205)
**Parâmetros:**
sample (`torch.Tensor`) : O tensor de entrada com ruído, com a seguinte forma `(batch_size, num_channels, sample_size)`.
timestep (`torch.Tensor` ou `float` ou `int`) : O número de timesteps para desruidar uma entrada.
return_dict (`bool`, *opcional*, padrão `True`) : Se deve ou não retornar um [UNet1DOutput](/docs/diffusers/main/pt/api/models/unet#diffusers.models.unets.unet_1d.UNet1DOutput) em vez de uma tupla simples.
**Retorna:** [UNet1DOutput](/docs/diffusers/main/pt/api/models/unet#diffusers.models.unets.unet_1d.UNet1DOutput) ou `tuple`
Se `return_dict` for True, um [UNet1DOutput](/docs/diffusers/main/pt/api/models/unet#diffusers.models.unets.unet_1d.UNet1DOutput) é retornado; caso contrário, uma `tuple` é retornada, em que o primeiro elemento é o tensor da amostra.
O método forward do [UNet1DModel](/docs/diffusers/main/pt/api/models/unet#diffusers.UNet1DModel).
## UNet1DOutput[[diffusers.models.unets.unet_1d.UNet1DOutput]]
#### diffusers.models.unets.unet_1d.UNet1DOutput[[diffusers.models.unets.unet_1d.UNet1DOutput]]
```python
diffusers.models.unets.unet_1d.UNet1DOutput(sample: Tensor)
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_1d.py#L28)
**Parâmetros:**
sample (`torch.Tensor` de forma `(batch_size, num_channels, sample_size)`) : Os estados ocultos de saída da última camada do modelo.
A saída de [UNet1DModel](/docs/diffusers/main/pt/api/models/unet#diffusers.UNet1DModel).

Xet Storage Details

Size:
6.77 kB
·
Xet hash:
1741d39f02bbb5e0ae7f7f8908565d59377f151a6f871dab0c2ed8819fade877

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.