Buckets:
Transformer2DModel
Un modelo Transformer para datos de tipo imagen de CompVis basado en el Vision Transformer introducido por Dosovitskiy et al. El Transformer2DModel acepta entradas discretas (clases de embeddings de vectores) o continuas (embeddings reales).
Cuando la entrada es continua:
- Proyecta la entrada y redimensiona su forma a
(batch_size, sequence_length, feature_dimension). - Aplica los bloques Transformer de la manera estándar.
- Redimensionar a imagen.
Cuando la entrada es discreta:
Se asume que una de las clases de entrada es el píxel latente enmascarado. Las clases predichas de la imagen sin ruido no contienen una predicción para el píxel enmascarado porque la imagen sin ruido no puede enmascararse.
- Convierte la entrada (clases de píxeles latentes) en incrustaciones y aplica incrustaciones posicionales.
- Aplica los bloques Transformer de la manera estándar.
- Predice las clases de la imagen sin ruido.
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, valor predeterminado 16) : El número de cabezas a utilizar para la atención multi-cabeza.
attention_head_dim (int, opcional, valor predeterminado 88) : El número de canales en cada cabeza.
in_channels (int, opcional) : El número de canales en la entrada y la salida (especifícalo si la entrada es continua).
num_layers (int, opcional, valor predeterminado 1) : El número de capas de bloques Transformer a utilizar.
dropout (float, opcional, valor predeterminado 0.0) : La probabilidad de dropout a utilizar.
cross_attention_dim (int, opcional) : El número de dimensiones de encoder_hidden_states a utilizar.
sample_size (int, opcional) : El ancho de las imágenes latentes (especificar si la entrada es discreta). Esto se fija durante el entrenamiento, ya que se utiliza para aprender un número de embeddings de posición.
num_vector_embeds (int, opcional) : El número de clases de las incrustaciones vectoriales de los píxeles latentes (especifícalo si la entrada es discreta). Incluye la clase para el píxel latente enmascarado.
activation_fn (str, opcional, por defecto "geglu") : Función de activación a utilizar en el feed-forward.
num_embeds_ada_norm ( int, opcional) : El número de pasos de difusión utilizados durante el entrenamiento. Pásalo si al menos una de las norm_layers es AdaLayerNorm. Esto se fija durante el entrenamiento, ya que se utiliza para aprender un número de embeddings que se añaden a los estados ocultos. Durante la inferencia, puedes desruidar hasta, pero no más, pasos que num_embeds_ada_norm.
attention_bias (bool, opcional) : Configura si la atención de TransformerBlocks debe incluir un parámetro de sesgo.
Un modelo Transformer 2D para datos similares a imágenes.
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) si es discreto, torch.Tensor de forma (batch size, channel, height, width) si es continuo) : hidden_states de entrada.
encoder_hidden_states ( torch.Tensor de forma (batch size, sequence len, embed dims), opcional) : Incrustaciones condicionales para la capa de atención cruzada. Si no se proporcionan, la atención cruzada predeterminada es la autoatención.
timestep ( torch.LongTensor, opcional) : Se utiliza para indicar el paso de desruido. Paso temporal opcional que se aplica como un embedding en AdaLayerNorm.
class_labels ( torch.LongTensor de forma (batch size, num classes), opcional) : Se utiliza para indicar la condición de etiquetas de clase. Etiquetas de clase opcionales que se aplicarán como un embedding en AdaLayerZeroNorm.
cross_attention_kwargs ( dict[str, Any], opcional) : Un diccionario de kwargs que, si se especifica, se pasa al AttentionProcessor definido bajo self.processor en diffusers.models.attention_processor.
attention_mask ( torch.Tensor, opcional) : Se aplica una máscara de atención de forma (batch, key_tokens) a encoder_hidden_states. Si es 1, la máscara se conserva; en caso contrario, si es 0, se descarta. La máscara se convertirá en un sesgo, que añade valores negativos grandes a las puntuaciones de atención correspondientes a los tokens "descartados".
encoder_attention_mask ( torch.Tensor, opcional) : Máscara de atención cruzada aplicada a encoder_hidden_states. Se admiten dos formatos: * Máscara (batch, sequence_length) True = conservar, False = descartar. * Sesgo (batch, 1, sequence_length) 0 = conservar, -10000 = descartar. Si ndim == 2: se interpretará como una máscara y luego se convertirá en un sesgo coherente con el formato anterior. Este sesgo se sumará a las puntuaciones de atención cruzada.
return_dict (bool, opcional, valor predeterminado True) : Indica si se debe devolver un UNet2DConditionOutput en lugar de una tupla simple.
Devuelve:
Si return_dict es True, se devuelve un Transformer2DModelOutput; en caso contrario, se devuelve una tuple cuyo primer elemento es el tensor de la muestra.
El método forward de 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) o (batch size, num_vector_embeds - 1, num_latent_pixels) si Transformer2DModel es discreto): las salidas de estados ocultos condicionadas a la entrada encoder_hidden_states. Si es discreto, devuelve distribuciones de probabilidad para los píxeles latentes sin ruido.
La salida de Transformer2DModel.
Xet Storage Details
- Size:
- 8.31 kB
- Xet hash:
- 333de81809f1595ee69eed123feddb883f99f889e7575d2172240b09ad162b24
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.