Buckets:
Transformer2DModel
Um modelo Transformer para dados semelhantes a imagens da CompVis que é baseado no Vision Transformer introduzido por Dosovitskiy et al. O Transformer2DModel aceita entradas discretas (classes de embeddings de vetores) ou contínuas (embeddings reais).
Quando a entrada é contínua:
- Projete a entrada e redimensione-a para
(batch_size, sequence_length, feature_dimension). - Aplique os blocos Transformer da maneira padrão.
- Redimensionar para imagem.
Quando a entrada é discreta:
Pressupõe-se que uma das classes de entrada seja o pixel latente mascarado. As classes previstas da imagem sem ruído não contêm uma previsão para o pixel mascarado, pois a imagem sem ruído não pode ser mascarada.
- Converte a entrada (classes de pixels latentes) em embeddings e aplica embeddings posicionais.
- Aplique os blocos Transformer da maneira padrão.
- Preveja as classes da imagem sem ruído.
Transformer2DModel[[diffusers.Transformer2DModel]]
diffusers.Transformer2DModel[[diffusers.Transformer2DModel]]
diffusers.Transformer2DModel(num_attention_heads: int = 16, attention_head_dim: int = 88, in_channels: int | None = None, out_channels: int | None = None, num_layers: int = 1, dropout: float = 0.0, norm_num_groups: int = 32, cross_attention_dim: int | None = None, attention_bias: bool = False, sample_size: int | None = None, num_vector_embeds: int | None = None, patch_size: int | None = None, activation_fn: str = 'geglu', num_embeds_ada_norm: int | None = None, use_linear_projection: bool = False, only_cross_attention: bool = False, double_self_attention: bool = False, upcast_attention: bool = False, norm_type: str = 'layer_norm', norm_elementwise_affine: bool = True, norm_eps: float = 1e-05, attention_type: str = 'default', caption_channels: int = None, interpolation_scale: float = None, use_additional_conditions: bool | None = None)
Parâmetros:
num_attention_heads (int, opcional, padrão 16) : O número de cabeças a serem usadas para a atenção multi-cabeça.
attention_head_dim (int, opcional, padrão 88) : O número de canais em cada head.
in_channels (int, opcional) : O número de canais na entrada e na saída (especifique se a entrada é contínua).
num_layers (int, opcional, padrão 1) : O número de blocos de Transformer a serem usados.
dropout (float, opcional, padrão 0.0) : A probabilidade de dropout a ser utilizada.
cross_attention_dim (int, opcional) : O número de dimensões de encoder_hidden_states a serem usadas.
sample_size (int, opcional) : A largura das imagens latentes (especifique se a entrada é discreta). Isso é fixo durante o treinamento, pois é usado para aprender um número de embeddings de posição.
num_vector_embeds (int, opcional) : O número de classes dos embeddings vetoriais dos pixels latentes (especifique se a entrada é discreta). Inclui a classe para o pixel latente mascarado.
activation_fn (str, opcional, padrão "geglu") : Função de ativação a ser usada no feed-forward.
num_embeds_ada_norm ( int, opcional) : O número de etapas de difusão usadas durante o treinamento. Passe se pelo menos uma das norm_layers for AdaLayerNorm. Isso é fixo durante o treinamento, pois é usado para aprender um número de embeddings que são adicionados aos estados ocultos. Durante a inferência, você pode desruidar para até, mas não mais etapas do que num_embeds_ada_norm.
attention_bias (bool, opcional) : Configura se a atenção dos TransformerBlocks deve conter um parâmetro de viés.
Um modelo Transformer 2D para dados semelhantes a imagens.
forward[[diffusers.Transformer2DModel.forward]]
forward(hidden_states: Tensor, encoder_hidden_states: typing.Optional[torch.Tensor] = None, timestep: typing.Optional[torch.LongTensor] = None, added_cond_kwargs: dict[str, torch.Tensor] = None, class_labels: typing.Optional[torch.LongTensor] = None, cross_attention_kwargs: dict[str, typing.Any] = None, attention_mask: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.Tensor] = None, return_dict: bool = True)
Parâmetros:
hidden_states (torch.LongTensor de forma (batch size, num latent pixels) se discreto, torch.Tensor de forma (batch size, channel, height, width) se contínuo) : hidden_states de entrada.
encoder_hidden_states ( torch.Tensor de forma (batch size, sequence len, embed dims), opcional) : Embebidings condicionais para a camada de atenção cruzada. Se não fornecidos, a atenção cruzada padrão é a autoatenção.
timestep ( torch.LongTensor, opcional) : Usado para indicar o passo de desruidamento. Timestep opcional a ser aplicado como um embedding em AdaLayerNorm.
class_labels ( torch.LongTensor de forma (batch size, num classes), opcional) : Usado para indicar o condicionamento por rótulos de classe. Rótulos de classe opcionais a serem aplicados como um embedding em AdaLayerZeroNorm.
cross_attention_kwargs ( dict[str, Any], opcional) : Um dicionário de kwargs que, se especificado, é passado para o AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.
attention_mask ( torch.Tensor, opcional) : Uma máscara de atenção com forma (batch, key_tokens) é aplicada a encoder_hidden_states. Se 1, a máscara é mantida; caso contrário, se 0, ela é descartada. A máscara será convertida em um viés, que adiciona valores negativos grandes às pontuações de atenção correspondentes aos tokens "descartados".
encoder_attention_mask ( torch.Tensor, opcional) : Máscara de atenção cruzada aplicada a encoder_hidden_states. Dois formatos suportados: * Máscara (batch, sequence_length) True = manter, False = descartar. * Viés (batch, 1, sequence_length) 0 = manter, -10000 = descartar. Se ndim == 2: será interpretada como uma máscara e, em seguida, convertida em um viés consistente com o formato acima. Esse viés será adicionado às pontuações de atenção cruzada.
return_dict (bool, opcional, padrão True) : Se deve ou não retornar um UNet2DConditionOutput em vez de uma tupla simples.
Retorna:
Se return_dict for True, um Transformer2DModelOutput é retornado; caso contrário, uma tuple em que o primeiro elemento é o tensor da amostra.
O método forward do Transformer2DModel.
Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]
diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
Parâmetros:
sample (torch.Tensor de forma (batch_size, num_channels, height, width) ou (batch size, num_vector_embeds - 1, num_latent_pixels) se Transformer2DModel for discreto) : A saída dos estados ocultos condicionada à entrada encoder_hidden_states. Se discreto, retorna distribuições de probabilidade para os pixels latentes sem ruído.
A saída de Transformer2DModel.
Xet Storage Details
- Size:
- 8.14 kB
- Xet hash:
- 2ea6f66a393680711d5926bcf72f628a640db6b7945259578c23ca69a218c201
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.