Diffusers documentation
Transformer2DModel
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:
- Girdiyi projekte edin ve
(batch_size, sequence_length, feature_dimension)şeklinde yeniden boyutlandırın. - Transformer bloklarını standart şekilde uygulayın.
- 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.
- Girdiyi (latent piksel sınıfları) gömümlere dönüştürün ve konumsal gömümleri uygulayın.
- Transformer bloklarını standart şekilde uygulayın.
- Gürültüsü olmayan görüntünün sınıflarını tahmin edin.
Transformer2DModel
sınıf diffusers.Transformer2DModel
< source >( 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ılacakencoder_hidden_statesboyutları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ı) —TransformerBlocksdikkatinin bir bias parametresi içermesini yapılandırır.
Görsel benzeri veriler için 2B Transformer modeli.
forward
< source >( 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.LongTensortipi ve(batch size, num latent pixels)şekli, continuous isetorch.Tensortipi ve(batch size, channel, height, width)şekli) — Girdihidden_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.AdaLayerNormiç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.AdaLayerZeroNormiç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çindekiself.processoraltında tanımlananAttentionProcessor'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.1ise maske korunur, aksi halde0ise 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 maskesiencoder_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 == 2ise: 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. - Mask
- return_dict (
bool, isteğe bağlı, varsayılanTrue) — 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
< source >( 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_statesgirdisine 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ı.