# Transformer2DModel

[CompVis](https://huggingface.co/CompVis) kaynaklı görüntü benzeri veriler için [Vision Transformer](https://huggingface.co/papers/2010.11929)'a dayalı bir Transformer modeli. [Transformer2DModel](/docs/diffusers/main/tr/api/models/transformer2d#diffusers.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:

> [!TIP]
> 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[[diffusers.Transformer2DModel]]

#### diffusers.Transformer2DModel[[diffusers.Transformer2DModel]]

```python
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)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_2d.py#L39)

**Parametreler:**

num_attention_heads (`int`, *isteğe bağlı*, varsayılan 16) : Çok başlı dikkat 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ı*) : Giriş ve çıkıştaki kanal sayısı (giriş **sürekli** ise belirtin).

num_layers (`int`, *isteğe bağlı*, varsayılan 1) : Kullanılacak Transformer bloğu katman sayısı.

dropout (`float`, *opsiyonel*, 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ı*) : Gizli görüntülerin genişliği (girdi **ayrık** 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ömmelemelerinin sınıf 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. Gizli durumlara eklenen gömme sayısını öğrenmek için kullanıldığından eğitim sırasında sabittir. Çıkarım sırasında, `num_embeds_ada_norm` değerinden fazla olmamak üzere bu kadar adıma kadar 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[[diffusers.Transformer2DModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: typing.Optional[torch.Tensor] = None, timestep: typing.Optional[torch.LongTensor] = None, added_cond_kwargs: dict = None, class_labels: typing.Optional[torch.LongTensor] = None, cross_attention_kwargs: dict = None, attention_mask: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.Tensor] = None, return_dict: bool = True)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_2d.py#L324)

**Parametreler:**

hidden_states (`torch.LongTensor`, ayrık ise `(batch size, num latent pixels)` boyutunda, `torch.Tensor`, sürekli ise `(batch size, channel, height, width)` boyutunda) : Girdi `hidden_states`.

encoder_hidden_states ( `torch.Tensor`, şekli `(batch size, sequence len, embed dims)`, *opsiyonel*) : Ç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ı zaman adımı.

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 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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) içindeki `self.processor` altında tanımlanan `AttentionProcessor`'ye aktarılan bir kwargs sözlüğü.

attention_mask ( `torch.Tensor`, *isteğe bağlı*) : `(batch, key_tokens)` biçimindeki bir dikkat maskesi, `encoder_hidden_states` üzerine uygulanır. Değer `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ı*) : `encoder_hidden_states` uygulanan çapraz dikkat maskesi. İki format desteklenir:  * Mask `(batch, sequence_length)` True = koru, False = at. * Bias `(batch, 1, sequence_length)` 0 = koru, -10000 = at.  `ndim == 2` ise: bir maske olarak yorumlanır, ardından yukarıdaki formata uygun bir bias'a dönüştürülür. Bu bias, çapraz dikkat puanlarına eklenir.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [UNet2DConditionOutput](/docs/diffusers/main/tr/api/models/unet2d-cond#diffusers.models.unets.unet_2d_condition.UNet2DConditionOutput) döndürülecek mi?

**Dönüş:**

`return_dict` True ise bir `Transformer2DModelOutput` döndürülür, aksi halde ilk öğesi örnek tensörü olan bir `tuple` döndürülür.

[Transformer2DModel](/docs/diffusers/main/tr/api/models/transformer2d#diffusers.Transformer2DModel) ileri yöntemi.

## Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

#### diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

```python
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_outputs.py#L21)

**Parametreler:**

sample (`torch.Tensor`, şekli `(batch_size, num_channels, height, width)` veya [Transformer2DModel](/docs/diffusers/main/tr/api/models/transformer2d#diffusers.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ü olmayan (unnoised) gizli (latent) pikseller için olasılık dağılımlarını döndürür.

[Transformer2DModel](/docs/diffusers/main/tr/api/models/transformer2d#diffusers.Transformer2DModel)'nin çıktısı.

