# Hiera

## Genel Bakış

Hiera, Chaitanya Ryali, Yuan-Ting Hu, Daniel Bolya, Chen Wei, Haoqi Fan, Po-Yao Huang, Vaibhav Aggarwal, Arkabandhu Chowdhury, Omid Poursaeed, Judy Hoffman, Jitendra Malik, Yanghao Li ve Christoph Feichtenhofer tarafından [Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles](https://huggingface.co/papers/2306.00989) makalesinde önerilmiştir.

Makale, modern hiyerarşik görme transformer'larının mimarisini, doğruluk veya verimlilikten ödün vermeden gereksiz bileşenleri kaldırarak basitleştiren hiyerarşik bir Vision Transformer olan "Hiera"yı tanıtır. Geleneksel transformer'ların, denetimli sınıflandırma performansını artırmak için karmaşık görme-özel bileşenler eklemesinin aksine, Hiera, genellikle "bells-and-whistles" (fazladan süsler) olarak adlandırılan bu eklemelerin yüksek doğruluk için zorunlu olmadığını gösterir. Güçlü bir görsel ön görev (MAE) kullanarak ön eğitim yapan Hiera, sadeliğini korur ve çeşitli görüntü ve video tanıma görevlerinde hem çıkarım hem de eğitim aşamalarında üstün doğruluk ve hız elde eder. Yaklaşım, görme görevleri için gerekli olan uzamsal önyargıların uygun ön eğitim yoluyla etkili bir şekilde öğrenilebileceğini ve ek mimari karmaşıklığa ihtiyaç duyulmadığını öne sürer.

Makalenin özeti aşağıdaki gibidir:

*Günümüzün modern hiyerarşik görme dönüştürücüleri, denetimli sınıflandırma performansını artırmak amacıyla çeşitli görme-özel bileşenler eklemiştir. Bu bileşenler etkili doğruluk oranlarına ve çekici FLOP sayılarına yol açsa da, eklenen karmaşıklık bu dönüştürücüleri aslında sade ViT muadillerinden daha yavaş hale getirmektedir. Bu makalede, bu ek yükün gereksiz olduğunu savunuyoruz. Güçlü bir görsel ön görev (MAE) ile ön eğitim yaparak, en son teknolojiye sahip çok aşamalı bir görme dönüştürücüsünden tüm süsleri ve ekstraları, doğruluk kaybı yaşamadan çıkarabiliriz. Bu süreçte, önceki modellerden daha doğru olup hem çıkarım hem de eğitim sırasında önemli ölçüde daha hızlı olan, son derece basit bir hiyerarşik görme dönüştürücü olan Hiera'yı oluşturuyoruz. Hiera'yı görüntü ve video tanıma için çeşitli görevlerde değerlendiriyoruz. Kodumuz ve modellerimiz https://github.com/facebookresearch/hiera adresinde mevcuttur.*

<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/hiera_overview.png"
alt="drawing" width="600"/>

 Hiera mimarisi. Orijinal makaleden alınmıştır.

Bu model, [EduardoPacheco](https://huggingface.co/EduardoPacheco) ve [namangarg110](https://huggingface.co/namangarg110) tarafından ortaklaşa geliştirilmiştir. Orijinal kod [burada] (https://github.com/facebookresearch/hiera) bulunabilir.

## Kaynaklar

Hiera ile başlamanıza yardımcı olmak için resmi Hugging Face ve topluluk (🌎 ile belirtilen) kaynaklarının listesi. Burada yer alacak bir kaynak göndermek isterseniz, bir Pull Request açmaktan çekinmeyin; inceleyeceğiz! Kaynağın, mevcut bir kaynağı tekrarlamak yerine ideal olarak yeni bir şeyi göstermesi beklenir.

- [HieraForImageClassification](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraForImageClassification), bu [defter](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/image_classification.ipynb) tarafından desteklenmektedir.
- Bkz: [Görsel sınıflandırma görevi kılavuzu](../tasks/image_classification)

## HieraConfig[[transformers.HieraConfig]]

#### transformers.HieraConfig[[transformers.HieraConfig]]

```python
transformers.HieraConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, embed_dim: int = 96, image_size: list[int] | tuple[int, ...] = (224, 224), patch_size: list[int] | tuple[int, ...] = (7, 7), patch_stride: list[int] | tuple[int, ...] = (4, 4), patch_padding: list[int] | tuple[int, ...] = (3, 3), mlp_ratio: float = 4.0, depths: list[int] | tuple[int, ...] = (2, 3, 16, 3), num_heads: list[int] | tuple[int, ...] = (1, 2, 4, 8), embed_dim_multiplier: float | int = 2.0, num_query_pool: int = 3, query_stride: list[int] | tuple[int, ...] = (2, 2), masked_unit_size: list[int] | tuple[int, ...] = (8, 8), masked_unit_attention: list[bool] | tuple[bool, ...] = (True, True, False, False), drop_path_rate: float | int = 0.0, num_channels: int = 3, hidden_act: str = 'gelu', initializer_range: float = 0.02, layer_norm_init: float = 1.0, layer_norm_eps: float = 1e-06, decoder_hidden_size: int | None = None, decoder_depth: int | None = None, decoder_num_heads: int | None = None, normalize_pixel_loss: bool | None = True, mask_ratio: float = 0.6, _out_features: list[str] | None = None, _out_indices: list[int] | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hiera/configuration_hiera.py#L25)

**Parametreler:**

embed_dim (`int`, *isteğe bağlı*, varsayılan `96`) : Gömme ve gizli durumların boyutluluğu.

image_size (`Union[list[int], tuple[int, ...]]`, *isteğe bağlı*, varsayılan `(224, 224)`) : Her bir görüntünün boyutu (çözünürlüğü).

patch_size (`Union[list[int], tuple[int, ...]]`, *isteğe bağlı*, varsayılan `(7, 7)`) : Her yamanın boyutu (çözünürlüğü).

patch_stride (`list(int)`, *isteğe bağlı*, varsayılan `[4, 4]`) : Yamanın (patch) adım aralığı (stride).

patch_padding (`list(int)`, *isteğe bağlı*, varsayılan `[3, 3]`) : Yamanlamanın dolgusu.

mlp_ratio (`float`, *isteğe bağlı*, varsayılan `4.0`) : MLP gizli boyutunun gömme boyutuna oranı.

depths (`Union[list[int], tuple[int, ...]]`, *isteğe bağlı*, varsayılan `(2, 3, 16, 3)`) : Transformer'daki her katmanın derinliği.

num_heads (`list(int)`, *isteğe bağlı*, varsayılan `[1, 2, 4, 8]`) : Transformer kodlayıcısının her katmanındaki dikkat başlarının sayısı.

embed_dim_multiplier (`float`, *opsiyonel*, varsayılan 2.0) : Transformer kodlayıcısının her katmanındaki yama gömme boyutluluğuna uygulanan çarpan.

num_query_pool (`int`, *isteğe bağlı*, varsayılan 3) : Sorgu havuzlama aşamalarının sayısı.

query_stride (`list(int)`, *isteğe bağlı*, varsayılan `[2, 2]`) : Sorgu havuzunun adım aralığı.

masked_unit_size (`list(int)`, *isteğe bağlı*, varsayılan `[8, 8]`) : Maskeli birimin boyutu.

masked_unit_attention (`list(bool)`, *isteğe bağlı*, varsayılan `[True, True, False, False]`) : Transformer kodlayıcısının her katmanında maskeli birim dikkatinin kullanılıp kullanılmayacağı.

drop_path_rate (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.0`) : Yama birleştirme için drop path oranı.

num_channels (`int`, *opsiyonel*, varsayılan `3`) : Girdi kanal sayısı.

hidden_act (`str`, *isteğe bağlı*, varsayılan `gelu`) : Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, `"gelu"`, `"relu"`, `"silu"` vb.

initializer_range (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

layer_norm_init (`float`, *isteğe bağlı*, varsayılan 1.0) : Katman normalizasyonu katmanları için başlangıç ağırlık değeri.

layer_norm_eps (`float`, *opsiyonel*, varsayılan `1e-06`) : Katman normalizasyonu katmanlarında kullanılan epsilon.

decoder_hidden_size (`int`, *isteğe bağlı*) : Gizli temsillerin boyutu.

decoder_depth (`int`, *isteğe bağlı*) : MAE ön eğitimi için decoder derinliği.

decoder_num_heads (`int`, *isteğe bağlı*) : Transformer çözücüdeki her dikkat katmanı için dikkat başı sayısı.

normalize_pixel_loss (`bool`, *isteğe bağlı*, varsayılan `True`) : Piksel kaybının piksel sayısına göre normalize edilip edilmeyeceğini belirtir.

mask_ratio (`float`, *isteğe bağlı*, varsayılan 0.6) : Girdideki maskelenmiş tokenların oranı.

Bu, bir HieraModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Hiera modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, [facebook/hiera-base-224](https://huggingface.co/facebook/hiera-base-224) modelinin yapılandırmasına benzer bir yapılandırma üretir.

Yapılandırma nesneleri [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) sınıfından türetilir ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) belgesini okuyun.

Örnek:

```python
>>> from transformers import HieraConfig, HieraModel

>>> # Initializing a Hiera hiera-base-patch16-224 style configuration
>>> configuration = HieraConfig()

>>> # Initializing a model (with random weights) from the hiera-base-patch16-224 style configuration
>>> model = HieraModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## HieraModel[[transformers.HieraModel]]

#### transformers.HieraModel[[transformers.HieraModel]]

```python
transformers.HieraModel(config: HieraConfig, add_pooling_layer: bool = True, is_mae: bool = False)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hiera/modeling_hiera.py#L800)

**Parametreler:**

config ([HieraConfig](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

add_pooling_layer (`bool`, *isteğe bağlı*, varsayılan `True`) : Havuzlama katmanının uygulanıp uygulanmayacağı.

is_mae (`bool`, *isteğe bağlı*, varsayılan `False`) : Modelin MAE modunda çalıştırılıp çalıştırılmayacağı.

Üzerinde herhangi bir özel head olmadan ham hidden-state çıktısı üreten çıplak Hiera Model.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.HieraModel.forward]]

```python
forward(pixel_values: typing.Optional[torch.Tensor] = None, noise: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, interpolate_pos_encoding: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hiera/modeling_hiera.py#L824)

**Parametreler:**

pixel_values (`torch.Tensor`, şekli `(batch_size, num_channels, image_size, image_size)`, *isteğe bağlı*) : Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri [BitImageProcessor](/docs/transformers/main/tr/model_doc/bit#transformers.BitImageProcessor) kullanılarak elde edilebilir. Ayrıntılar için [BitImageProcessor.__call__()](/docs/transformers/main/tr/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) adresine bakın (`processor_class`, görüntü işleme için [BitImageProcessor](/docs/transformers/main/tr/model_doc/bit#transformers.BitImageProcessor) kullanır).

noise (`torch.Tensor`, şekli `(batch_size, num_mask_units)`, *isteğe bağlı*) : Başlıca test amaçlı olarak kullanılır; rastgeleliği kontrol etmek ve yeniden üretilebilirliği korumak için

output_attentions (`bool`, *isteğe bağlı*) : Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmediğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `attentions` bölümüne bakın.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

interpolate_pos_encoding (`bool`, *isteğe bağlı*) : Ön eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağını belirtir.

return_dict (`bool`, *isteğe bağlı*) : Düz bir tuple yerine [ModelOutput](/docs/transformers/main/tr/main_classes/output#transformers.utils.ModelOutput) döndürülecek mi?

**Dönüş:** [BaseModelOutputWithPooling](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) veya `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([HieraConfig](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[HieraModel](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraModel) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`) -- Modelin son katmanının çıktısındaki gizli durumlar dizisi.
- **pooler_output** (`torch.Tensor`, şekli `(batch_size, hidden_size)`) -- Sıralamanın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlardan geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonundan geçirildikten sonraki halini döndürür. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

```python
```

## HieraForPreTraining[[transformers.HieraForPreTraining]]

#### transformers.HieraForPreTraining[[transformers.HieraForPreTraining]]

```python
transformers.HieraForPreTraining(config: HieraConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hiera/modeling_hiera.py#L1061)

**Parametreler:**

config ([HieraConfig](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Kendinden denetimli ön eğitim için üstünde çözücü bulunan Hiera Model dönüştürücüsü.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.HieraForPreTraining.forward]]

```python
forward(pixel_values: typing.Optional[torch.Tensor] = None, noise: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, interpolate_pos_encoding: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hiera/modeling_hiera.py#L1102)

**Parametreler:**

pixel_values (`torch.Tensor`, şekli `(batch_size, num_channels, image_size, image_size)`, *isteğe bağlı*) : Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri [BitImageProcessor](/docs/transformers/main/tr/model_doc/bit#transformers.BitImageProcessor) kullanılarak elde edilebilir. Ayrıntılar için [BitImageProcessor.__call__()](/docs/transformers/main/tr/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) adresine bakın (`processor_class`, görüntü işleme için [BitImageProcessor](/docs/transformers/main/tr/model_doc/bit#transformers.BitImageProcessor) kullanır).

noise (`torch.Tensor`, şekli `(batch_size, num_mask_units)`, *isteğe bağlı*) : Başlıca test amaçlı olarak kullanılır; rastgeleliği kontrol etmek ve yeniden üretilebilirliği korumak için

output_attentions (`bool`, *isteğe bağlı*) : Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmediğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `attentions` bölümüne bakın.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

interpolate_pos_encoding (`bool`, *isteğe bağlı*) : Ön eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağını belirtir.

return_dict (`bool`, *isteğe bağlı*) : Düz bir tuple yerine [ModelOutput](/docs/transformers/main/tr/main_classes/output#transformers.utils.ModelOutput) döndürülecek mi?

**Dönüş:** `HieraForPreTrainingOutput` veya `tuple(torch.Tensor)`

`HieraForPreTrainingOutput` veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([HieraConfig](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[HieraForPreTraining](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraForPreTraining) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`torch.Tensor`, şekli `(1,)`) -- Piksel yeniden oluşturma kaybı.
- **logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, patch_size ** 2 * num_channels)`) -- Piksel yeniden oluşturma logitsleri.
- **bool_masked_pos** (`torch.BoolTensor`, şekli `(batch_size, sequence_length)`) -- Hangi yamaların maskelendiğini (0) ve hangilerinin maskelenmediğini (1) gösteren tensör.
- **ids_restore** (`torch.LongTensor`, şekli `(batch_size, sequence_length)`) -- (karıştırılmış) maskelenmiş yamaların (patches) orijinal indeksini içeren tensör.
- **hidden_states** (`tuple[torch.Tensor]`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren ve `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple[torch.Tensor]`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `(batch_size, num_heads, sequence_length, sequence_length)` biçiminde, her katman için bir adet içeren `torch.Tensor` demeti.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
- **reshaped_hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme çıktısı için bir tane + her katman çıktısı için bir tane) içeren, `(batch_size, height, width, hidden_size)` biçiminde bir demet. Her katmanın çıktısında modelin gizli durumları ile başlangıç gömme çıktıları, uzamsal boyutları içerecek şekilde yeniden şekillendirilmiştir.

Örnekler:
```python
>>> from transformers import AutoImageProcessor, HieraForPreTraining
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-tiny-224-mae-hf")
>>> model = HieraForPreTraining.from_pretrained("facebook/hiera-tiny-224-mae-hf")

>>> inputs = image_processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> logits = outputs.logits
>>> loss = outputs.loss
>>> print(list(logits.shape))
[1, 196, 768]
```

## HieraForImageClassification[[transformers.HieraForImageClassification]]

#### transformers.HieraForImageClassification[[transformers.HieraForImageClassification]]

```python
transformers.HieraForImageClassification(config: HieraConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hiera/modeling_hiera.py#L1207)

**Parametreler:**

config ([HieraConfig](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Üzerinde bir görüntü sınıflandırma başlığı (ortalama havuzlama üzerine son gizli durumun üstüne yerleştirilen doğrusal bir katman) bulunan Hiera Model dönüştürücüsü, örneğin ImageNet için.

Modelin forward'ında `interpolate_pos_encoding` parametresini `True` olarak ayarlayarak, Hiera'nın eğitimde kullanıldığından daha yüksek çözünürlüklü görseller üzerinde ince ayar yapılmasının mümkün olduğunu unutmayın. Bu işlem, önceden eğitilmiş konum gömme değerlerini (position embeddings) daha yüksek çözünürlüğe göre içsel olarak (interpolate) hesaplar.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.HieraForImageClassification.forward]]

```python
forward(pixel_values, labels: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, interpolate_pos_encoding: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hiera/modeling_hiera.py#L1222)

**Parametreler:**

pixel_values (`` of shape `(batch_size, num_channels, image_size, image_size)`) : The tensors corresponding to the input images. Pixel values can be obtained using [BitImageProcessor](/docs/transformers/main/tr/model_doc/bit#transformers.BitImageProcessor). See [BitImageProcessor.__call__()](/docs/transformers/main/tr/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) for details (`processor_class` uses [BitImageProcessor](/docs/transformers/main/tr/model_doc/bit#transformers.BitImageProcessor) for processing images).

labels (`torch.LongTensor`, şekli `(batch_size,)`, *isteğe bağlı*) : Görüntü sınıflandırma/geri dönüşüm kaybını hesaplamak için etiketler. Endeksler `[0, ..., config.num_labels - 1]` aralığında olmalıdır. `config.num_labels == 1` ise bir geri dönüşüm kaybı (Ortalama Kare kaybı) hesaplanır, `config.num_labels > 1` ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.

output_attentions (`bool`, *isteğe bağlı*) : Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmediğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `attentions` bölümüne bakın.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

interpolate_pos_encoding (`bool`, *isteğe bağlı*) : Ön eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağını belirtir.

return_dict (`bool`, *isteğe bağlı*) : Düz bir tuple yerine [ModelOutput](/docs/transformers/main/tr/main_classes/output#transformers.utils.ModelOutput) döndürülecek mi?

**Dönüş:** `HieraForImageClassificationOutput` veya `tuple(torch.Tensor)`

`HieraForImageClassificationOutput` veya bir `torch.Tensor` demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırma ([HieraConfig](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[HieraForImageClassification](/docs/transformers/main/tr/model_doc/hiera#transformers.HieraForImageClassification) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`torch.Tensor`, şekli `(1,)`, *isteğe bağlı*, `labels` sağlandığında döndürülür) -- Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.
- **logits** (`torch.Tensor`, şekli `(batch_size, config.num_labels)`) -- Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her aşamanın çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`. Modelin her aşamanın çıktısındaki gizli durumları (aynı zamanda özellik haritaları olarak da adlandırılır).
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, patch_size, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
- **reshaped_hidden_states** (`tuple(torch.Tensor)`, `optional`) -- `torch.Tensor` (gömme çıktısı için bir adet + her aşamanın çıktısı için bir adet) içeren, `(batch_size, height, width, hidden_size)` biçiminde bir tuple. Bunlar, modelin yeniden şekillendirilmiş ve yeniden sarılmış gizli durumlarıdır.

  Her katmanın çıktısında modelin gizli durumları ile uzamsal boyutları içerecek şekilde yeniden şekillendirilmiş başlangıç gömme çıktıları.

Örnek:

```python
>>> from transformers import AutoImageProcessor, HieraForImageClassification
>>> import torch
>>> from datasets import load_dataset

>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-base-224")
>>> model = HieraForImageClassification.from_pretrained("facebook/hiera-base-224")

>>> inputs = image_processor(image, return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = logits.argmax(-1).item()
>>> print(model.config.id2label[predicted_label])
...
```

