# DEIMv2

## Genel Bakış

DEIMv2 (DETR with Improved Matching v2), Shihua Huang, Yongjie Hou, Longfei Liu, Xuanlong Yu ve Xi Shen tarafından [DEIMv2: Real-Time Object Detection Meets DINOv3](https://huggingface.co/papers/2509.20787) makalesinde önerilmiştir.

Makalenin özeti aşağıdaki gibidir:

*Sade ve etkili Dense O2O ile desteklenen DEIM, daha hızlı yakınsama ve geliştirilmiş performans sergiler. Bu çalışmada, DINOv3 özellikleriyle genişleterek DEIMv2'yi elde ettik. DEIMv2, X'ten Atto'ya kadar sekiz model boyutunu kapsar ve GPU, kenar (edge) ve mobil dağıtımı için uygundur. X, L, M ve S varyantları için DINOv3 önceden eğitilmiş / damıtılmış omurga ağlarını (backbone) benimseyerek, DINOv3'ün tek ölçekli çıktısını çok ölçekli özelliklere verimli bir şekilde dönüştüren ve güçlü anlamsal bilgileri ince taneli detaylarla tamamlayarak algılamayı iyileştiren Uzamsal Ayarlayıcı Adaptörü (STA) tanıttık. Ultra hafif modeller (Nano, Pico, Femto ve Atto) için, sıkı kaynak bütçelerini karşılamak amacıyla derinlik ve genişlik budaması (pruning) uygulanan HGNetv2'yi kullandık. Basitleştirilmiş bir çözücü (decoder) ve yükseltilmiş Dense O2O ile birlikte bu birleşik tasarım, DEIMv2'nin çeşitli senaryolarda üstün performans-maliyet dengesini sağlamasına olanak tanır ve yeni en iyi sonuçları (state-of-the-art) ortaya koyar. Önemli olan, en büyük modelimiz olan DEIMv2-X'in yalnızca 50.3M parametreyle 57.8 AP'ye ulaşması ve yalnızca 56.5 AP için 60M'den fazla parametre gerektiren önceki X ölçeğindeki modelleri geride bırakmasıdır. Kompakt tarafta ise DEIMv2-S, COCO üzerinde 50 AP eşiğini aşan ilk 10M altı model (9.71M) olarak 50.9 AP'ye ulaşıyor. Sadece 1.5M parametreye sahip ultra hafif DEIMv2-Pico bile, ~%50 daha az parametreyle YOLOv10-Nano (2.3M) ile eşleşen 38.5 AP sunuyor.*

Bu model [Harshal Janjani](https://huggingface.co/harshaljanjani) tarafından katkıda bulunmuştur. Orijinal kod [burada](https://github.com/Intellindust-AI-Lab/DEIMv2) bulunabilir.

## Kullanım

```python
from transformers import AutoImageProcessor, AutoModelForObjectDetection
from transformers.image_utils import load_image

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = load_image(url)

image_processor = AutoImageProcessor.from_pretrained("harshaljanjani/DEIMv2_HGNetv2_N_COCO_Transformers")
model = AutoModelForObjectDetection.from_pretrained("harshaljanjani/DEIMv2_HGNetv2_N_COCO_Transformers", device_map="auto")

inputs = image_processor(images=image, return_tensors="pt").to(model.device)
outputs = model(**inputs)

results = image_processor.post_process_object_detection(
    outputs, threshold=0.5, target_sizes=[image.size[::-1]]
)

for result in results:
    for score, label, box in zip(result["scores"], result["labels"], result["boxes"]):
        box = [round(i, 2) for i in box.tolist()]
        print(f"Detected {model.config.id2label[label.item()]} with confidence {round(score.item(), 3)} at location {box}")
```

## Deimv2Config[[transformers.Deimv2Config]]

#### transformers.Deimv2Config[[transformers.Deimv2Config]]

```python
transformers.Deimv2Config(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, 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, is_encoder_decoder: bool = True, initializer_range: float = 0.01, initializer_bias_prior_prob: float | None = None, layer_norm_eps: float = 1e-05, batch_norm_eps: float = 1e-05, backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, freeze_backbone_batch_norms: bool = True, encoder_hidden_dim: int = 256, encoder_in_channels: list[int] | tuple[int, ...] = (512, 1024, 2048), feat_strides: list[int] | tuple[int, ...] = (8, 16, 32), encoder_layers: int = 1, encoder_ffn_dim: int = 1024, encoder_attention_heads: int = 8, dropout: float | int = 0.0, activation_dropout: float | int = 0.0, encode_proj_layers: list[int] | tuple[int, ...] = (2,), positional_encoding_temperature: int = 10000, encoder_activation_function: str = 'gelu', activation_function: str = 'silu', eval_size: list[int] | tuple[int, int] | None = None, normalize_before: bool = False, hidden_expansion: float = 1.0, d_model: int = 256, num_queries: int = 300, decoder_in_channels: list[int] | tuple[int, ...] = (256, 256, 256), decoder_ffn_dim: int = 1024, num_feature_levels: int = 3, decoder_n_points: int | list[int] = 4, decoder_layers: int = 6, decoder_attention_heads: int = 8, decoder_activation_function: str = 'relu', attention_dropout: float | int = 0.0, num_denoising: int = 100, label_noise_ratio: float = 0.5, box_noise_scale: float = 1.0, learn_initial_query: bool = False, anchor_image_size: int | list[int] | None = None, with_box_refine: bool = True, matcher_alpha: float = 0.25, matcher_gamma: float = 2.0, matcher_class_cost: float = 2.0, matcher_bbox_cost: float = 5.0, matcher_giou_cost: float = 2.0, use_focal_loss: bool = True, auxiliary_loss: bool = True, focal_loss_alpha: float = 0.75, focal_loss_gamma: float = 2.0, weight_loss_vfl: float = 1.0, weight_loss_bbox: float = 5.0, weight_loss_giou: float = 2.0, weight_loss_fgl: float = 0.15, weight_loss_ddf: float = 1.5, eos_coefficient: float = 0.0001, eval_idx: int = -1, layer_scale: int | float = 1.0, max_num_bins: int = 32, reg_scale: float = 4.0, depth_mult: float = 1.0, top_prob_values: int = 4, lqe_hidden_dim: int = 64, lqe_layers: int = 2, decoder_offset_scale: float = 0.5, decoder_method: str = 'default', up: float = 0.5, tie_word_embeddings: bool = True, weight_loss_mal: float = 1.0, use_dense_one_to_one: bool = True, mal_alpha: float | None = None, encoder_fuse_op: str = 'sum', spatial_tuning_adapter_inplanes: int = 16, encoder_type: str = 'hybrid', use_gateway: bool = True, share_bbox_head: bool = False, encoder_has_trailing_conv: bool = True)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/deimv2/configuration_deimv2.py#L32)

**Parametreler:**

is_encoder_decoder (`bool`, *isteğe bağlı*, varsayılan `True`) : Modelin bir kodlayıcı/çözücü olarak kullanılıp kullanılmadığı.

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

initializer_bias_prior_prob (`float`, *isteğe bağlı*) : `enc_score_head` ve `class_embed` için önyargıları başlatmak üzere önyargı başlatıcısı tarafından kullanılan önceden olasılık. `None` ise, model ağırlıkları başlatılırken `prior_prob`, `prior_prob = 1 / (num_labels + 1)` olarak hesaplanır.

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

batch_norm_eps (`float`, *isteğe bağlı*, varsayılan `1e-05`) : Toplu normalizasyon katmanları tarafından kullanılan epsilon.

backbone_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *isteğe bağlı*) : Omurga modelinin yapılandırması.

freeze_backbone_batch_norms (`bool`, *isteğe bağlı*, varsayılan `True`) : Omurgadaki (backbone) toplama normalizasyonu (batch normalization) katmanlarını dondurulup dondurulmayacağı.

encoder_hidden_dim (`int`, *isteğe bağlı*, varsayılan `256`) : Gizli temsillerin boyutu.

encoder_in_channels (`list`, *isteğe bağlı*, varsayılan `[512, 1024, 2048]`) : Kodlayıcı için çok seviyeli özellik girişi.

feat_strides (`list[int]`, *isteğe bağlı*, varsayılan `[8, 16, 32]`) : Her özellik haritasında kullanılan adımlar.

encoder_layers (`int`, *isteğe bağlı*, varsayılan `1`) : Transformer kodlayıcısındaki gizli katman sayısı. Ayarlanmazsa `num_layers` ile aynı değeri kullanır.

encoder_ffn_dim (`int`, *opsiyonel*, varsayılan `1024`) : Kodlayıcıdaki "ara" (genellikle feed-forward olarak adlandırılan) katmanının boyutluluğu.

encoder_attention_heads (`int`, *isteğe bağlı*, varsayılan `8`) : Transformer kodlayıcısındaki her dikkat katmanı için dikkat başı sayısı.

dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.0`) : Tüm dropout katmanları için oran.

activation_dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.0`) : Tamamen bağlı katmandaki aktivasyonlar için dropout oranı.

encode_proj_layers (`list[int]`, *isteğe bağlı*, varsayılan `[2]`) : Kodlayıcıda kullanılacak projeksiyon katmanlarının indeksleri.

positional_encoding_temperature (`int`, *isteğe bağlı*, varsayılan 10000) : Konumsal kodlamaları oluşturmak için kullanılan sıcaklık parametresi.

encoder_activation_function (`str`, *isteğe bağlı*, varsayılan `"gelu"`) : Kodlayıcıda ve pooler'da kullanılan doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize).

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

eval_size (`list[int]` veya `tuple[int, int]`, *isteğe bağlı*) : Stride dikkate alındıktan sonra konum gömme (position embeddings) için geçerli yükseklik ve genişliğin hesaplanmasında kullanılan yükseklik ve genişlik.

normalize_before (`bool`, *isteğe bağlı*, varsayılan `False`) : Transformer kodlayıcı katmanında, öz-dikkat ve ileri beslemeli modüllerden önce katman normalizasyonunun uygulanıp uygulanmayacağını belirler.

hidden_expansion (`float`, *opsiyonel*, varsayılan 1.0) : RepVGGBlock ve CSPRepLayer boyutlarını büyütmek için kullanılan genişletme oranı.

d_model (`int`, *isteğe bağlı*, varsayılan `256`) : Kodlayıcı katmanlarının ve havuzlayıcı katmanının boyutu.

num_queries (`int`, *isteğe bağlı*, varsayılan 300) : Nesne sorgusu sayısı.

decoder_in_channels (`list`, *isteğe bağlı*, varsayılan `[256, 256, 256]`) : Çözücü için çok seviyeli özellik boyutu.

decoder_ffn_dim (`int`, *isteğe bağlı*, varsayılan `1024`) : Dekoderdeki "ara" (genellikle feed-forward olarak adlandırılan) katmanın boyutluluğu.

num_feature_levels (`int`, *isteğe bağlı*, varsayılan 3) : Girdi özellik seviyelerinin sayısı.

decoder_n_points (`int`, *isteğe bağlı*, varsayılan 4) : Dekoderdeki her dikkat başı için her özellik seviyesinde örneklenen anahtar sayısı.

decoder_layers (`int`, *isteğe bağlı*, varsayılan `6`) : Transformer decoder'ındaki gizli katman sayısı. Ayarlanmazsa `num_layers` ile aynı değer kullanılır.

decoder_attention_heads (`int`, *isteğe bağlı*, varsayılan `8`) : Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.

decoder_activation_function (`str`, *isteğe bağlı*, varsayılan `"relu"`) : Dekoderdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize).

attention_dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.0`) : Dikkat olasılıkları için dropout oranı.

num_denoising (`int`, *isteğe bağlı*, varsayılan 100) : Karşılaştırmalı gürültü azaltma için kullanılacak toplam gürültü azaltma görevi veya sorgu sayısı.

label_noise_ratio (`float`, *opsiyonel*, varsayılan 0.5) : Rastgele gürültü eklenmesi gereken gürültüden arındırma etiketlerinin oranı.

box_noise_scale (`float`, *isteğe bağlı*, varsayılan 1.0) : Sınır kutularına eklenecek gürültünün ölçeği veya büyüklüğü.

learn_initial_query (`bool`, *isteğe bağlı*, varsayılan `False`) : Eğitme sırasında decoder için başlangıç sorgu gömme değerlerinin öğrenilip öğrenilmeyeceğini belirtir.

anchor_image_size (`tuple[int, int]`, *isteğe bağlı*) : Değerlendirme sırasında sınırlayıcı kutu çapaları oluşturmak için kullanılan girdi görüntüsünün yüksekliği ve genişliği.

with_box_refine (`bool`, *isteğe bağlı*, varsayılan `True`) : İteratif sınırlayıcı kutu iyileştirmesinin uygulanıp uygulanmayacağı.

matcher_alpha (`float`, *opsiyonel*, varsayılan 0.25) : Hungarian Matcher tarafından kullanılan alpha parametresi.

matcher_gamma (`float`, *opsiyonel*, varsayılan 2.0) : Macar Eşleştirici tarafından kullanılan gamma parametresi.

matcher_class_cost (`float`, *opsiyonel*, varsayılan 2.0) : Hungarian Matcher tarafından kullanılan sınıf kaybının göreli ağırlığı.

matcher_bbox_cost (`float`, *opsiyonel*, varsayılan 5.0) : Hungarian Matcher tarafından kullanılan sınırlayıcı kutu kaybının göreli ağırlığı.

matcher_giou_cost (`float`, *opsiyonel*, varsayılan 2.0) : Hungarian Matcher tarafından kullanılan giou kaybının göreli ağırlığı.

use_focal_loss (`bool`, *isteğe bağlı*, varsayılan `True`) : Focal loss kullanılacaksa bilgilendiren parametre.

auxiliary_loss (`bool`, *isteğe bağlı*, varsayılan `True`) : Yardımcı çözümleme kayıplarının (her decoder katmanındaki kayıplar) kullanılıp kullanılmayacağı.

focal_loss_alpha (`float`, *opsiyonel*, varsayılan 0.75) : Focal loss hesaplamak için kullanılan alpha parametresi.

focal_loss_gamma (`float`, *isteğe bağlı*, varsayılan 2.0) : Focal loss hesaplamak için kullanılan gamma parametresi.

weight_loss_vfl (`float`, *isteğe bağlı*, varsayılan 1.0) : Nesne algılama kaybında varifocal kaybının göreli ağırlığı.

weight_loss_bbox (`float`, *opsiyonel*, varsayılan 5.0) : Nesne algılama kaybında L1 sınırlayıcı kutu kaybının göreli ağırlığı.

weight_loss_giou (`float`, *opsiyonel*, varsayılan 2.0) : Nesne algılama kaybında genelleştirilmiş IoU kaybının göreli ağırlığı.

weight_loss_fgl (`float`, *opsiyonel*, varsayılan 0.15) : Nesne algılama kaybında ince taneli konumlandırma kaybının göreli ağırlığı.

weight_loss_ddf (`float`, *opsiyonel*, varsayılan 1.5) : Nesne algılama kaybında ayrıştırılmış damıtma odaklı kaybın göreli ağırlığı.

eos_coefficient (`float`, *opsiyonel*, varsayılan `0.0001`) : Nesne algılama kaybında 'no-object' sınıfının göreli sınıflandırma ağırlığı.

eval_idx (`int`, *isteğe bağlı*, varsayılan -1) : Değerlendirme için kullanılacak decoder katmanının indeksi.

layer_scale (`float`, *isteğe bağlı*, varsayılan `1.0`) : Sonraki decoder katmanlarında gizli boyut için ölçekleme faktörü.

max_num_bins (`int`, *isteğe bağlı*, varsayılan 32) : Dağılım yönlendirmeli sınırlayıcı kutu iyileştirmesi için maksimum kutu sayısı.

reg_scale (`float`, *isteğe bağlı*, varsayılan 4.0) : Regresyon dağılımı için ölçekleme faktörü.

depth_mult (`float`, *isteğe bağlı*, varsayılan 1.0) : RepNCSPELAN5 katmanlarındaki blok sayısının çarpanı.

top_prob_values (`int`, *isteğe bağlı*, varsayılan 4) : Her köşenin dağılımından dikkate alınacak en yüksek olasılık değerlerinin sayısı.

lqe_hidden_dim (`int`, *isteğe bağlı*, varsayılan 64) : Konum Kalitesi Tahminleyici (LQE) ağı için gizli boyut boyutu.

lqe_layers (`int`, *isteğe bağlı*, varsayılan 2) : Konum Kalitesi Tahminleyici MLP'sindeki katman sayısı.

decoder_offset_scale (`float`, *opsiyonel*, varsayılan 0.5) : Deformable attention'da kullanılan offset ölçeği.

decoder_method (`str`, *isteğe bağlı*, varsayılan `"default"`) : Çözücü için kullanılacak yöntem: `"default"` veya `"discrete"`.

up (`float`, *isteğe bağlı*, varsayılan 0.5) : Ağırlıklandırma Fonksiyonu'nun üst sınırlarını kontrol eder.

tie_word_embeddings (`bool`, *isteğe bağlı*, varsayılan `True`) : Ağırlık gömme bağlamalarının, modelin `tied_weights_keys` eşlemesine göre yapılıp yapılmayacağını belirtir.

weight_loss_mal (`float`, *isteğe bağlı*, varsayılan 1.0) : Nesne algılama kaybında eşleşen yardımcı kaybın göreli ağırlığı.

use_dense_one_to_one (`bool`, *isteğe bağlı*, varsayılan `True`) : Dekoder katmanları arasında yoğun bir-bir eşleştirme kullanılıp kullanılmayacağı.

mal_alpha (`float`, *isteğe bağlı*) : Matching Auxiliary Loss (MAL) için Alpha parametresi. `None` ise `focal_loss_alpha` kullanılır.

encoder_fuse_op (`str`, *isteğe bağlı*, varsayılan `"sum"`) : Kodlayıcı FPN'de kullanılan füzyon işlemi. DEIMv2, D-FINE'ın `"cat"` işlemi yerine `"sum"` kullanır.

spatial_tuning_adapter_inplanes (`int`, *isteğe bağlı*, varsayılan 16) : STA konvolüsyonlu gövde için giriş düzlemi sayısı.

encoder_type (`str`, *isteğe bağlı*, varsayılan `"hybrid"`) : Kullanılacak kodlayıcı türü. `"hybrid"`, AIFI, FPN ve PAN ile tam HybridEncoder'ı kullanır. `"lite"`, daha küçük varyantlar (Atto, Femto, Pico) için GAP füzyonlu hafif LiteEncoder'ı kullanır.

use_gateway (`bool`, *isteğe bağlı*, varsayılan `True`) : Dekoder katmanlarında gateway mekanizmasının (cross-attention gating) kullanılıp kullanılmayacağı. `False` ise, bunun yerine encoder attention çıktısında RMSNorm kullanılır.

share_bbox_head (`bool`, *isteğe bağlı*, varsayılan `False`) : Sınır kutusu tahmin başlığının tüm decoder katmanları arasında paylaşılıp paylaşılmayacağını belirtir.

encoder_has_trailing_conv (`bool`, *isteğe bağlı*, varsayılan `True`) : Kodlayıcının CSP bloklarının, darboğaz yolunun ardından son bir 3x3 konvolüsyon içerip içermediğini belirtir. RepNCSPELAN4 için `True` (HGNetV2 N ve LiteEncoder varyantları tarafından kullanılır). RepNCSPELAN5 için `False` (DINOv3 varyantları tarafından kullanılır).

Bu, bir Deimv2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Deimv2 modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, [Intellindust/DEIMv2_HGNetv2_N_COCO](https://huggingface.co/Intellindust/DEIMv2_HGNetv2_N_COCO) 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.

## Deimv2Model[[transformers.Deimv2Model]]

#### transformers.Deimv2Model[[transformers.Deimv2Model]]

```python
transformers.Deimv2Model(config: Deimv2Config)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/deimv2/modeling_deimv2.py#L1695)

**Parametreler:**

config ([Deimv2Config](/docs/transformers/main/tr/model_doc/deimv2#transformers.Deimv2Config)) : 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.

RT-DETR Model (bir omurga ve kodlayıcı-çözücüden oluşan) üzerinde herhangi bir başlık olmadan ham gizli durumlar üreten.

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

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: list[dict] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/deimv2/modeling_deimv2.py#L1789)

**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).

pixel_mask (`torch.LongTensor`, şekli `(batch_size, height, width)`, *isteğe bağlı*) : Dolgu piksel değerleri üzerinde dikkat işleminin uygulanmasını önlemek için maske. `[0, 1]` aralığında seçilen maske değerleri:  - Gerçek (yani **maskelenmemiş**) pikseller için 1, - Dolgu (yani **maskelenmiş**) pikseller için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

encoder_outputs (`torch.Tensor`, *isteğe bağlı*) : (`last_hidden_state`, *isteğe bağlı*: `hidden_states`, *isteğe bağlı*: `attentions`) `last_hidden_state` boyutu `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) kodlayıcının son katmanının çıktısındaki gizli durumlar dizisidir. Çözücüdeki çapraz dikkat (cross-attention) işleminde kullanılır.

inputs_embeds (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : Düzleştirilmiş özellik haritasını (backbone + projeksiyon katmanının çıktısı) iletmek yerine, bir görüntünün düzleştirilmiş temsilini doğrudan iletme seçeneğine sahipsiniz.

labels (`list[Dict]`, len `(batch_size,)`, *isteğe bağlı*) : İkili eşleştirme kaybını hesaplamak için etiketler. Sözlüklerden oluşan liste, her sözlük en azından şu 2 anahtarı içerir: 'class_labels' ve 'boxes' (sırasıyla bir batch içindeki bir görüntünün sınıf etiketleri ve sınırlayıcı kutuları). Sınıf etiketlerinin kendisi, len `(number of bounding boxes in the image,)` olan bir `torch.LongTensor` ve kutuların şekli `(number of bounding boxes in the image, 4)` olan bir `torch.Tensor` olmalıdır.

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

Bir `Deimv2ModelOutput` veya bir `torch.Tensor` demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırmaya (`None`) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[Deimv2Model](/docs/transformers/main/tr/model_doc/deimv2#transformers.Deimv2Model) 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, num_queries, hidden_size)`) -- Modelin decoder'ının son katmanının çıktısındaki gizli durumlar dizisi.
- **intermediate_hidden_states** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, num_queries, hidden_size)`) -- Yığılmış ara gizli durumlar (decoder'ın her katmanının çıktısı).
- **intermediate_logits** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, sequence_length, config.num_labels)`) -- Yığılmış ara logits (decoder'ın her katmanının logits'i).
- **intermediate_reference_points** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, num_queries, 4)`) -- Yığılmış ara referans noktaları (decoder'ın her katmanının referans noktaları).
- **intermediate_predicted_corners** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, num_queries, 4)`) -- Yığılmış ara tahmini köşeler (decoder'ın her katmanının tahmini köşeleri).
- **initial_reference_points** (`torch.Tensor`, şekli `(batch_size, num_queries, 4)`) -- İlk decoder katmanı için kullanılan başlangıç referans noktaları.
- **decoder_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 katmanın çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`.

  Her katmanın çıktısında ve başlangıç gömme çıktılarında dekodlayıcının gizli durumları.
- **decoder_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 yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan çözücü (decoder) dikkat ağırlıkları.
- **cross_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.

  Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
- **encoder_last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) -- Modelin kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.
- **encoder_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 katmanın çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`.

  Her katmanın çıktısında ve başlangıç gömme çıktılarında kodlayıcının gizli durumları.
- **encoder_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 yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan kodlayıcının dikkat ağırlıkları.
- **init_reference_points** (`torch.Tensor`, şekli `(batch_size, num_queries, 4)`) -- Transformer decoder üzerinden gönderilen başlangıç referans noktaları.
- **enc_topk_logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.num_labels)`) -- Kodlayıcı aşamasında bölge önerileri olarak seçilen, en yüksek `config.two_stage_num_proposals` puanlı sınırlayıcı kutuların tahmini sınırlayıcı kutu puanları. Sınırlayıcı kutu ikili sınıflandırmasının (yani ön plan ve arka plan) çıktısı.
- **enc_topk_bboxes** (`torch.Tensor`, şekli `(batch_size, sequence_length, 4)`) -- Kodlayıcı aşamasında tahmin edilen sınırlayıcı kutu koordinatlarının logitleri.
- **enc_outputs_class** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.num_labels)`, *opsiyonel*, `config.with_box_refine=True` ve `config.two_stage=True` olduğunda döndürülür) -- İlk aşamada en yüksek `config.two_stage_num_proposals` puanlı sınırlayıcı kutuların bölge önerileri olarak seçildiği, tahmini sınırlayıcı kutu puanları. Sınırlayıcı kutu ikili sınıflandırmasının (yani ön plan ve arka plan) çıktısı.
- **enc_outputs_coord_logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, 4)`, *opsiyonel*, `config.with_box_refine=True` ve `config.two_stage=True` olduğunda döndürülür) -- Birinci aşamada tahmin edilen sınırlayıcı kutu koordinatlarının logitleri.
- **denoising_meta_values** (`dict`, *isteğe bağlı*) -- Gürültü azaltma ile ilgili değerler için ek sözlük.

Örnekler:

```python
>>> from transformers import AutoImageProcessor, Deimv2Model
>>> 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("PekingU/Deimv2_r50vd")
>>> model = Deimv2Model.from_pretrained("PekingU/Deimv2_r50vd")

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

>>> outputs = model(**inputs)

>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 300, 256]
```

## Deimv2ForObjectDetection[[transformers.Deimv2ForObjectDetection]]

#### transformers.Deimv2ForObjectDetection[[transformers.Deimv2ForObjectDetection]]

```python
transformers.Deimv2ForObjectDetection(config: Deimv2Config)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/deimv2/modeling_deimv2.py#L2068)

**Parametreler:**

config ([Deimv2Config](/docs/transformers/main/tr/model_doc/deimv2#transformers.Deimv2Config)) : 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.

RT-DETR Model (bir omurga ve kodlayıcı-çözücüden oluşan) sınırlayıcı kutuları ve daha sonra puanlara ve sınıflara çözümlenecek logitleri üreten.

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

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: list[dict] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/deimv2/modeling_deimv2.py#L2107)

**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).

pixel_mask (`torch.LongTensor`, şekli `(batch_size, height, width)`, *isteğe bağlı*) : Dolgu piksel değerleri üzerinde dikkat işleminin uygulanmasını önlemek için maske. `[0, 1]` aralığında seçilen maske değerleri:  - Gerçek (yani **maskelenmemiş**) pikseller için 1, - Dolgu (yani **maskelenmiş**) pikseller için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

encoder_outputs (`torch.Tensor`, *isteğe bağlı*) : (`last_hidden_state`, *isteğe bağlı*: `hidden_states`, *isteğe bağlı*: `attentions`) `last_hidden_state` boyutu `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) kodlayıcının son katmanının çıktısındaki gizli durumlar dizisidir. Çözücüdeki çapraz dikkat (cross-attention) işleminde kullanılır.

inputs_embeds (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : `input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi tercih edebilirsiniz. Bu, `input_ids` indekslerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.

labels (`list[Dict]`, len `(batch_size,)`, *isteğe bağlı*) : İkili eşleştirme kaybını hesaplamak için etiketler. Sözlüklerden oluşan liste, her sözlük en azından şu 2 anahtarı içerir: 'class_labels' ve 'boxes' (sırasıyla bir batch içindeki bir görüntünün sınıf etiketleri ve sınırlayıcı kutuları). Sınıf etiketlerinin kendisi, len `(number of bounding boxes in the image,)` olan bir `torch.LongTensor` ve kutuların şekli `(number of bounding boxes in the image, 4)` olan bir `torch.Tensor` olmalıdır.

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

`Deimv2ObjectDetectionOutput` veya bir `torch.Tensor` demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırmaya (`None`) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[Deimv2ForObjectDetection](/docs/transformers/main/tr/model_doc/deimv2#transformers.Deimv2ForObjectDetection) 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ıf tahmini için negatif log-olabilirlik (çapraz entropi) ile sınırlayıcı kutu kaybının doğrusal bir kombinasyonu olarak toplam kayıp. İkincisi, L1 kaybı ve genelleştirilmiş ölçekten bağımsız IoU kaybının doğrusal bir kombinasyonu olarak tanımlanır.
- **loss_dict** (`Dict`, *isteğe bağlı*) -- Bireysel kayıpları içeren bir sözlük. Kayıt tutma için faydalıdır.
- **logits** (`torch.Tensor`, şekli `(batch_size, num_queries, num_classes + 1)`) -- Tüm sorgular için sınıflandırma logitleri (no-object dahil).
- **pred_boxes** (`torch.Tensor`, şekli `(batch_size, num_queries, 4)`) -- Tüm sorgular için normalize edilmiş kutu koordinatları, (center_x, center_y, width, height) olarak temsil edilir. Bu değerler, [0, 1] aralığında normalize edilmiştir ve parti içindeki her bir görüntünün boyutuna göre (olası dolguları göz ardı ederek) göreli olarak tanımlanır. Normalize edilmemiş (mutlak) sınırlayıcı kutuları almak için `~Deimv2ImageProcessor.post_process_object_detection` işlevini kullanabilirsiniz.
- **auxiliary_outputs** (`list[Dict]`, *isteğe bağlı*) -- İsteğe bağlı, yalnızca yardımcı kayıplar etkinleştirildiğinde (yani `config.auxiliary_loss` `True` olarak ayarlandığında) ve etiketler sağlandığında döndürülür. Her kodlayıcı katmanı için yukarıdaki iki anahtarı (`logits` ve `pred_boxes`) içeren sözlüklerden oluşan bir listedir.
- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, num_queries, hidden_size)`) -- Modelin decoder'ının son katmanının çıktısındaki gizli durumlar dizisi.
- **intermediate_hidden_states** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, num_queries, hidden_size)`) -- Yığılmış ara gizli durumlar (decoder'ın her katmanının çıktısı).
- **intermediate_logits** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, num_queries, config.num_labels)`) -- Yığılmış ara logits (decoder'ın her katmanının logits'i).
- **intermediate_reference_points** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, num_queries, 4)`) -- Yığılmış ara referans noktaları (decoder'ın her katmanının referans noktaları).
- **intermediate_predicted_corners** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, num_queries, 4)`) -- Yığılmış ara tahmini köşeler (decoder'ın her katmanının tahmini köşeleri).
- **initial_reference_points** (`torch.Tensor`, şekli `(batch_size, config.decoder_layers, num_queries, 4)`) -- Yığılmış başlangıç referans noktaları (decoder'ın her katmanının başlangıç referans noktaları).
- **decoder_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 katmanın çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`.

  Her katmanın çıktısında ve başlangıç gömme çıktılarında dekodlayıcının gizli durumları.
- **decoder_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 yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan çözücü (decoder) dikkat ağırlıkları.
- **cross_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.

  Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
- **encoder_last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) -- Modelin kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.
- **encoder_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 katmanın çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`.

  Her katmanın çıktısında ve başlangıç gömme çıktılarında kodlayıcının gizli durumları.
- **encoder_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 yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan kodlayıcının dikkat ağırlıkları.
- **init_reference_points** (`torch.Tensor`, şekli  `(batch_size, num_queries, 4)`) -- Transformer decoder üzerinden gönderilen başlangıç referans noktaları.
- **enc_topk_logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.num_labels)`, *isteğe bağlı*, `config.with_box_refine=True` ve `config.two_stage=True` olduğunda döndürülür) -- Kodlayıcıda tahmin edilen sınırlayıcı kutu koordinatlarının logitleri.
- **enc_topk_bboxes** (`torch.Tensor`, şekli `(batch_size, sequence_length, 4)`, *isteğe bağlı*, `config.with_box_refine=True` ve `config.two_stage=True` olduğunda döndürülür) -- Kodlayıcıda tahmin edilen sınırlayıcı kutu koordinatlarının logitleri.
- **enc_outputs_class** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.num_labels)`, *opsiyonel*, `config.with_box_refine=True` ve `config.two_stage=True` olduğunda döndürülür) -- İlk aşamada en yüksek `config.two_stage_num_proposals` puanlı sınırlayıcı kutuların bölge önerileri olarak seçildiği, tahmini sınırlayıcı kutu puanları. Sınırlayıcı kutu ikili sınıflandırmasının (yani ön plan ve arka plan) çıktısı.
- **enc_outputs_coord_logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, 4)`, *opsiyonel*, `config.with_box_refine=True` ve `config.two_stage=True` olduğunda döndürülür) -- Birinci aşamada tahmin edilen sınırlayıcı kutu koordinatlarının logitleri.
- **denoising_meta_values** (`dict`, *isteğe bağlı*) -- Gürültü azaltma ile ilgili değerler için ek sözlük

Örnek:

```python
>>> import torch
>>> from transformers.image_utils import load_image
>>> from transformers import AutoImageProcessor, Deimv2ForObjectDetection

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> image_processor = AutoImageProcessor.from_pretrained("harshaljanjani/DEIMv2_HGNetv2_N_COCO_Transformers")
>>> model = Deimv2ForObjectDetection.from_pretrained("harshaljanjani/DEIMv2_HGNetv2_N_COCO_Transformers")

>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")

>>> # forward pass
>>> outputs = model(**inputs)

>>> logits = outputs.logits
>>> list(logits.shape)
[1, 300, 80]

>>> boxes = outputs.pred_boxes
>>> list(boxes.shape)
[1, 300, 4]

>>> # convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> target_sizes = torch.tensor([image.size[::-1]])
>>> results = image_processor.post_process_object_detection(outputs, threshold=0.9, target_sizes=target_sizes)
>>> result = results[0]  # first image in batch

>>> for score, label, box in zip(result["scores"], result["labels"], result["boxes"]):
...     box = [round(i, 2) for i in box.tolist()]
...     print(
...         f"Detected {model.config.id2label[label.item()]} with confidence "
...         f"{round(score.item(), 3)} at location {box}"
...     )
```

