Diffusers documentation

Transformer2DModel

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

Transformer2DModel

CompVis kaynaklı görüntü benzeri veriler için Vision Transformer'a dayalı bir Transformer modeli. Transformer2DModel, ayrık (vektör gömme sınıfları) veya sürekli (gerçek gömme) girdileri kabul eder.

Girdi sürekli olduğunda:

  1. Girdiyi projekte edin ve (batch_size, sequence_length, feature_dimension) şeklinde yeniden boyutlandırın.
  2. Transformer bloklarını standart şekilde uygulayın.
  3. Görüntüye yeniden şekillendir.

Girdi ayrık olduğunda:

Giriş sınıflarından birinin maskelenmiş gizli (latent) piksel olduğu varsayılır. Gürültüsü kaldırılmış görüntünün tahmin edilen sınıfları, maskelenmiş piksel için bir tahmin içermez çünkü gürültüsü kaldırılmış görüntü maskelenemez.

  1. Girdiyi (latent piksel sınıfları) gömümlere dönüştürün ve konumsal gömümleri uygulayın.
  2. Transformer bloklarını standart şekilde uygulayın.
  3. Gürültüsü olmayan görüntünün sınıflarını tahmin edin.

Transformer2DModel

sınıf diffusers.Transformer2DModel

< >

( num_attention_heads: int = 16attention_head_dim: int = 88in_channels: int | None = Noneout_channels: int | None = Nonenum_layers: int = 1dropout: float = 0.0norm_num_groups: int = 32cross_attention_dim: int | None = Noneattention_bias: bool = Falsesample_size: int | None = Nonenum_vector_embeds: int | None = Nonepatch_size: int | None = Noneactivation_fn: str = 'geglu'num_embeds_ada_norm: int | None = Noneuse_linear_projection: bool = Falseonly_cross_attention: bool = Falsedouble_self_attention: bool = Falseupcast_attention: bool = Falsenorm_type: str = 'layer_norm'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05attention_type: str = 'default'caption_channels: int = Noneinterpolation_scale: float = Noneuse_additional_conditions: bool | None = None )

Parametreler

  • num_attention_heads (int, isteğe bağlı, varsayılan 16) — Çok başlı dikkat (multi-head attention) için kullanılacak baş sayısı.
  • attention_head_dim (int, isteğe bağlı, varsayılan 88) — Her baştaki kanal sayısı.
  • in_channels (int, isteğe bağlı) — Girdi ve çıktıdaki kanal sayısı (girdi sürekli ise belirtin).
  • num_layers (int, isteğe bağlı, varsayılan 1) — Kullanılacak Transformer bloğu katman sayısı.
  • dropout (float, isteğe bağlı, varsayılan 0.0) — Kullanılacak dropout olasılığı.
  • cross_attention_dim (int, isteğe bağlı) — Kullanılacak encoder_hidden_states boyutlarının sayısı.
  • sample_size (int, isteğe bağlı) — Latent görüntülerin genişliği (girdi discrete ise belirtin). Bu, konum gömme sayısını öğrenmek için kullanıldığından eğitim sırasında sabittir.
  • num_vector_embeds (int, isteğe bağlı) — Gizli piksellerin vektör gömme sınıflarının sayısı (girdi ayrık ise belirtin). Maskelenmiş gizli piksel sınıfını içerir.
  • activation_fn (str, isteğe bağlı, varsayılan "geglu") — Feed-forward'de kullanılacak aktivasyon fonksiyonu.
  • num_embeds_ada_norm ( int, isteğe bağlı) — Eğitim sırasında kullanılan difüzyon adım sayısı. norm_layers'dan en az biri AdaLayerNorm ise bunu iletin. AdaLayerNorm. Gizli durumlara eklenen gömme sayısını öğrenmek için kullanıldığından, bu değer eğitim sırasında sabittir. Çıkarım sırasında, num_embeds_ada_norm'dan daha fazla adımda gürültü giderme yapamazsınız.

    Çıkarım sırasında, num_embeds_ada_norm'den fazla olmamak üzere en fazla bu kadar adımda gürültü azaltma yapabilirsiniz.

  • attention_bias (bool, isteğe bağlı) — TransformerBlocks dikkatinin bir bias parametresi içermesini yapılandırır.

Görsel benzeri veriler için 2B Transformer modeli.

forward

< >

( hidden_states: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Nonetimestep: typing.Optional[torch.LongTensor] = Noneadded_cond_kwargs: dict = Noneclass_labels: typing.Optional[torch.LongTensor] = Nonecross_attention_kwargs: dict = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )

Parametreler

  • hidden_states (discrete ise torch.LongTensor tipi ve (batch size, num latent pixels) şekli, continuous ise torch.Tensor tipi ve (batch size, channel, height, width) şekli) — Girdi hidden_states.
  • encoder_hidden_states ( torch.Tensor, şekli (batch size, sequence len, embed dims), isteğe bağlı) — Çapraz dikkat katmanı için koşullu gömme değerleri. Verilmezse, çapraz dikkat varsayılan olarak kendine dikkat (self-attention) olarak çalışır.
  • timestep ( torch.LongTensor, isteğe bağlı) — Gürültü azaltma adımını belirtmek için kullanılır. AdaLayerNorm içinde gömme olarak uygulanacak isteğe bağlı timestep.
  • class_labels ( torch.LongTensor, şekli (batch size, num classes), isteğe bağlı) — Sınıf etiketi koşullandırmasını belirtmek için kullanılır. AdaLayerZeroNorm içinde gömme (embedding) olarak uygulanacak isteğe bağlı sınıf etiketleri.
  • cross_attention_kwargs ( dict[str, Any], isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • attention_mask ( torch.Tensor, isteğe bağlı) — encoder_hidden_states’e (batch, key_tokens) biçiminde bir dikkat maskesi uygulanır. 1 ise maske korunur, aksi halde 0 ise atılır. Maske, “at” token’larına karşılık gelen dikkat puanlarına büyük negatif değerler ekleyen bir önyargıya dönüştürülür.
  • encoder_attention_mask ( torch.Tensor, isteğe bağlı) — şuna uygulanan çapraz dikkat maskesi encoder_hidden_states. Desteklenen iki biçim:
    • Mask (batch, sequence_length) True = koru, False = at.
    • Yöneltme (batch, 1, sequence_length) 0 = koru, -10000 = at.

    ndim == 2 ise: bir maske olarak yorumlanır, ardından yukarıdaki biçimle tutarlı bir önyargıya dönüştürülür. Bu önyargı çapraz dikkat puanlarına eklenir.

  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine UNet2DConditionOutput döndürülüp döndürülmemesi.

Transformer2DModel ileri yöntemi.

Transformer2DModelOutput

sınıf diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parametreler

  • sample (torch.Tensor, şekli (batch_size, num_channels, height, width) veya Transformer2DModel ayrık (discrete) ise (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states girdisine koşullu gizli durum (hidden states) çıktısı. Ayrık (discrete) ise, gürültüsü kaldırılmış (unnoised) gizli (latent) pikseller için olasılık dağıtımlarını döndürür.

Transformer2DModel'nin çıktısı.

Update on GitHub