# HGNet-V2

[HGNetV2](https://github.com/PaddlePaddle/PaddleClas/blob/v2.6.0/docs/zh_CN/models/ImageNet1k/PP-HGNetV2.md), NVIDIA GPU'lerde doğruluk-gecikme dengesi için en iyi performansı hedefleyen, bir sonraki nesil konvolüsyonel sinir ağı (CNN) omurgasıdır. Orijinal [HGNet](https://github.com/PaddlePaddle/PaddleClas/blob/v2.6.0/docs/en/models/PP-HGNet_en.md) üzerine inşa edilen HGNetV2, yüksek doğruluğu hızlı çıkarım hızlarıyla birleştirir; görüntü sınıflandırma, nesne algılama ve segmentasyon gibi görevlerde güçlü performans gösterir. Bu özellikleriyle GPU tabanlı bilgisayarlı görü uygulamaları için pratik bir tercih haline gelir.

Tüm orijinal HGNet V2 modellerini [USTC](https://huggingface.co/ustc-community/models?search=hgnet) kuruluşu altında bulabilirsiniz.

> [!TIP]
> Bu model [VladOS95-cyber](https://github.com/VladOS95-cyber) tarafından katkıda bulunmuştur. HGNet V2'nin farklı bilgisayarla görme görevlerine nasıl uygulanacağına dair daha fazla örnek için sağ kenar çubuğundaki HGNet V2 modellerine tıklayın.

Aşağıdaki örnek, bir görüntünün [Pipeline](/docs/transformers/main/tr/main_classes/pipelines#transformers.Pipeline) veya [AutoModel](/docs/transformers/main/tr/model_doc/auto#transformers.AutoModel) sınıfı ile nasıl sınıflandırıldığını göstermektedir.

```python
from transformers import pipeline

pipeline = pipeline(
    task="image-classification",
    model="ustc-community/hgnet-v2",
    device=0
)
pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")
```

```python
import requests
import torch
from PIL import Image

from transformers import AutoImageProcessor, HGNetV2ForImageClassification

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

model = HGNetV2ForImageClassification.from_pretrained("ustc-community/hgnet-v2", device_map="auto")
processor = AutoImageProcessor.from_pretrained("ustc-community/hgnet-v2")

inputs = processor(images=image, return_tensors="pt").to(model.device)
with torch.no_grad():
    logits = model(**inputs).logits
predicted_class_id = logits.argmax(dim=-1).item()

class_labels = model.config.id2label
predicted_class_label = class_labels[predicted_class_id]
print(f"The predicted class label is: {predicted_class_label}")
```

## HGNetV2Config[[transformers.HGNetV2Config]]

#### transformers.HGNetV2Config[[transformers.HGNetV2Config]]

```python
transformers.HGNetV2Config(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, num_channels: int = 3, embedding_size: int = 64, depths: list[int] | tuple[int, ...] = (3, 4, 6, 3), hidden_sizes: list[int] | tuple[int, ...] = (256, 512, 1024, 2048), hidden_act: str = 'relu', _out_features: list[str] | None = None, _out_indices: list[int] | None = None, stem_channels: list[int] | tuple[int, ...] = (3, 32, 48), stem_strides: Sequence = (2, 1, 1, 2, 1), stage_in_channels: list[int] | tuple[int, ...] = (48, 128, 512, 1024), stage_mid_channels: list[int] | tuple[int, ...] = (48, 96, 192, 384), stage_out_channels: list[int] | tuple[int, ...] = (128, 512, 1024, 2048), stage_num_blocks: list[int] | tuple[int, ...] = (1, 1, 3, 1), stage_downsample: list[bool] | tuple[bool, ...] = (False, True, True, True), stage_downsample_strides: Sequence = (2, 2, 2, 2), stage_light_block: list[bool] | tuple[bool, ...] = (False, False, True, True), stage_kernel_size: list[int] | tuple[int, ...] = (3, 3, 5, 5), stage_numb_of_layers: list[int] | tuple[int, ...] = (6, 6, 6, 6), use_learnable_affine_block: bool = False, initializer_range: float = 0.02)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hgnet_v2/configuration_hgnet_v2.py#L35)

**Parametreler:**

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

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

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

hidden_sizes (`Union[list[int], tuple[int, ...]]`, *isteğe bağlı*, varsayılan `(256, 512, 1024, 2048)`) : Modelin her aşamasındaki boyut (gizli boyut).

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

stem_channels (`list[int]`, *isteğe bağlı*, varsayılan `[3, 32, 48]`) : Kök katmanları için kanal boyutları: - İlk sayı (3) girdi görüntü kanallarını - İkinci sayı (32) ara kök kanallarını - Üçüncü sayı (48) çıktı kök kanallarını temsil eder

stem_strides (`Sequence[int | list[int] | tuple[int, ...]]`, *isteğe bağlı*, varsayılan `(2, 1, 1, 2, 1)`) : Stem katmanları için stride desenleri.

stage_in_channels (`list[int]`, *isteğe bağlı*, varsayılan `[48, 128, 512, 1024]`) : Backbone'un her aşaması için giriş kanal boyutları. Bu, her aşamanın girdisinin kaç kanala sahip olacağını tanımlar.

stage_mid_channels (`list[int]`, *isteğe bağlı*, varsayılan `[48, 96, 192, 384]`) : Omurga (backbone) her aşaması için orta kanal boyutları. Bu, her aşamanın ara katmanlarında kullanılan kanal sayısını tanımlar.

stage_out_channels (`list[int]`, *isteğe bağlı*, varsayılan `[128, 512, 1024, 2048]`) : Omurga (backbone) her aşaması için çıktı kanal boyutları. Bu, her aşamanın çıktısının kaç kanala sahip olacağını tanımlar.

stage_num_blocks (`list[int]`, *isteğe bağlı*, varsayılan `[1, 1, 3, 1]`) : Omurganın her aşamasında kullanılacak blok sayısı. Bu, kaç konvolüsyonlu bloğun üst üste yığılacağını belirleyerek her aşamanın derinliğini kontrol eder.

stage_downsample (`list[bool]`, *isteğe bağlı*, varsayılan `[False, True, True, True]`) : Her aşamada özellik haritalarının indirgenip indirgenmeyeceğini belirtir. `True` ise, özellik haritalarının uzamsal boyutları küçültülür.

stage_downsample_strides (`Sequence[int | list[int] | tuple[int, ...]]`, *isteğe bağlı*, varsayılan `(2, 2, 2, 2)`) : Her aşama katmanı için stride desenleri.

stage_light_block (`list[bool]`, *isteğe bağlı*, varsayılan `[False, False, True, True]`) : Her aşamada hafif blokların kullanılıp kullanılmayacağını belirtir. Hafif bloklar, daha az parametreye sahip olabilen konvolüsyonel blokların bir varyantıdır.

stage_kernel_size (`list[int]`, *isteğe bağlı*, varsayılan `[3, 3, 5, 5]`) : Her aşamadaki konvolüsyon katmanları için çekirdek boyutları.

stage_numb_of_layers (`list[int]`, *isteğe bağlı*, varsayılan `[6, 6, 6, 6]`) : Aşamanın her bloğunda kullanılacak katman sayısı.

use_learnable_affine_block (`bool`, *isteğe bağlı*, varsayılan `False`) : Ağda Öğrenilebilir Afinite Blokları (LAB) kullanılıp kullanılmayacağı. LAB, belirli işlemlerden sonra öğrenilebilir ölçek ve sapma parametreleri ekler.

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ı.

Bu, bir HGNetV2Backbone yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Hgnet V2 modeli örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [ustc-community/dfine_x_coco](https://huggingface.co/ustc-community/dfine_x_coco) yapılandırmasına benzer bir yapılandırma elde etmenizi sağlar.

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.

## HGNetV2Backbone[[transformers.HGNetV2Backbone]]

#### transformers.HGNetV2Backbone[[transformers.HGNetV2Backbone]]

```python
transformers.HGNetV2Backbone(config: HGNetV2Config)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hgnet_v2/modeling_hgnet_v2.py#L343)

#### forward[[transformers.HGNetV2Backbone.forward]]

```python
forward(pixel_values: Tensor, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hgnet_v2/modeling_hgnet_v2.py#L356)

**Parametreler:**

pixel_values (`torch.Tensor`, şekli `(batch_size, num_channels, image_size, image_size)`) : Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri `image_processor_class` kullanılarak elde edilebilir. Ayrıntılar için `image_processor_class.__call__` bölümüne bakın (`processor_class`, görüntüleri işlemek için `image_processor_class` kullanır).

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.

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üş:** `BackboneOutput` veya `tuple(torch.Tensor)`

A `BackboneOutput` veya bir `torch.Tensor` tuple'ı (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırmaya ([HGNetV2Config](/docs/transformers/main/tr/model_doc/hgnet_v2#transformers.HGNetV2Config)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[HGNetV2Backbone](/docs/transformers/main/tr/model_doc/hgnet_v2#transformers.HGNetV2Backbone) 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.

- **feature_maps** (`tuple(torch.Tensor)`, şekli `(batch_size, num_channels, height, width)`) -- Aşamaların özellik haritaları.
- **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 bir tuple, boyutu `(batch_size, sequence_length, hidden_size)` veya `(batch_size, num_channels, height, width)`, iskelete (backbone) göre değişir.

  Modelin her aşamanın çıktısındaki gizli durumları ve 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)`. Yalnızca omurga dikkat (attention) kullanıyorsa geçerlidir.

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

Örnekler:

```python
>>> from transformers import HGNetV2Config, HGNetV2Backbone
>>> import torch

>>> config = HGNetV2Config()
>>> model = HGNetV2Backbone(config)

>>> pixel_values = torch.randn(1, 3, 224, 224)

>>> with torch.no_grad():
...     outputs = model(pixel_values)

>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
[1, 2048, 7, 7]
```

## HGNetV2ForImageClassification[[transformers.HGNetV2ForImageClassification]]

#### transformers.HGNetV2ForImageClassification[[transformers.HGNetV2ForImageClassification]]

```python
transformers.HGNetV2ForImageClassification(config: HGNetV2Config)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hgnet_v2/modeling_hgnet_v2.py#L420)

**Parametreler:**

config ([HGNetV2Config](/docs/transformers/main/tr/model_doc/hgnet_v2#transformers.HGNetV2Config)) : 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 bakın.

Üstünde bir görüntü sınıflandırma başlığı (toplanmış özelliklerin üzerinde doğrusal bir katman) bulunan HGNetV2 Modeli, örneğin ImageNet için.

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.HGNetV2ForImageClassification.forward]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/hgnet_v2/modeling_hgnet_v2.py#L436)

**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 `image_processor_class` kullanılarak elde edilebilir. Ayrıntılar için `image_processor_class.__call__` bölümüne bakın (`processor_class`, görüntüleri işlemek için `image_processor_class` kullanır).

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_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.

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üş:** [ImageClassifierOutputWithNoAttention](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.ImageClassifierOutputWithNoAttention) veya `tuple(torch.Tensor)`

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

[HGNetV2ForImageClassification](/docs/transformers/main/tr/model_doc/hgnet_v2#transformers.HGNetV2ForImageClassification) 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, num_channels, height, width)`. Modelin her aşamanın çıktısındaki gizli durumları (aynı zamanda özellik haritaları olarak da adlandırılır).

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

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

>>> model = HGNetV2ForImageClassification.from_pretrained("ustc-community/hgnet-v2")
>>> processor = AutoImageProcessor.from_pretrained("ustc-community/hgnet-v2")

>>> inputs = processor(images=image, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)
>>> outputs.logits.shape
torch.Size([1, 2])
```

