Transformers documentation

Piramit Görüntü Dönüşümcü V2 (PVTv2)

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Bu model 2021-06-25 tarihinde HF papers'ta yayımlanmış ve 2024-03-13 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.

Piramit Görüntü Dönüşümcü V2 (PVTv2)

Genel Bakış

PVTv2 modeli, Wenhai Wang, Enze Xie, Xiang Li, Deng-Ping Fan, Kaitao Song, Ding Liang, Tong Lu, Ping Luo ve Ling Shao tarafından PVT v2: Improved Baselines with Pyramid Vision Transformer makalesinde önerilmiştir. PVT'nin geliştirilmiş bir varyantı olarak konum gömme (position embedding) kullanmaz; bunun yerine sıfır dolgusu (zero-padding) ve örtüşen yama gömme (overlapping patch embedding) yoluyla kodlanan konumsal bilgilere dayanır. Konum gömme kullanmama gereksinimi mimariyi basitleştirir ve bunların interpolasyonuna ihtiyaç duymadan herhangi bir çözünürlükte çıkarım (inference) yapılmasını mümkün kılar.

PVTv2 kodlayıcı yapısı, anlamsal segmentasyon için Segformer, monoküler derinlik için GLPN ve panoptik segmentasyon için Panoptic Segformer modellerinde en iyi sonuçları elde etmek üzere başarıyla dağıtılmıştır.

PVTv2, çok ölçekli özellik haritaları üretmek amacıyla transformer katmanlarında uyarlamalar yapan hiyerarşik transformer adlı model ailesine aittir. İnce detayları kaybeden Vision Transformer'ın (ViT) sütunsal yapısının aksine, çok ölçekli özellik haritalarının bu detayları koruduğu ve yoğun tahmin görevlerindeki performansa yardımcı olduğu bilinmektedir. PVTv2'de bu, her kodlayıcı katmanında üst üste binen çekirdeklerle 2B konvolüsyon kullanarak görüntü yama belirteçleri üretilerek sağlanır.

Hiyerarşik transformer'ların çok ölçekli özellikleri, bunların ResNet gibi geleneksel ana omurga bilgisayarla görme modellerinin yerini büyük mimarilerde kolayca alabilmesini sağlar. Hem Segformer hem de Panoptic Segformer, bir omurga olarak PVTv2 kullanan yapılandırmaların, benzer boyutlu ResNet omurgalarına sahip yapılandırmaları tutarlı bir şekilde geride bıraktığını göstermiştir.

PVTv2'nin bir diğer güçlü özelliği, gizli durumları sorgularla dikkate almadan önce daha küçük bir çözünürlüğe yansıtmak için 2D konvolüsyon katmanlarını kullanan ve kendine-dikkat katmanlarındaki karmaşıklığı azaltan Mekânsal Azaltma Dikkati (SRA) adlı mekanizmadır. Bu sayede kendine-dikkatin O(n2)O(n^2) karmaşıklığı $O(n^2/R)$'ye düşer; burada RR mekânsal azaltma oranıdır (sr_ratio, 2D konvolüsyonda çekirdek boyutu ve adım olarak da bilinir).

SRA, PVT'de tanıtılmış olup PVTv2'de kullanılan varsayılan dikkat karmaşıklığı azaltma yöntemidir. Ancak PVTv2, görüntü boyutuyla doğrusal karmaşıklığa sahip bir öz-dikkat mekanizması kullanma seçeneğini de sunmuştur; buna “Linear SRA” adını vermişlerdir. Bu yöntem, gizli durumları orijinal çözünürlüklerine bağımsız olarak sabit bir boyuta indirmek için ortalama havuzlama (average pooling) kullanır (bu, normal SRA'ya göre doğası gereği daha fazla bilgi kaybına yol açar). Bu seçenek, PVTv2Config içinde linear_attention değerini True olarak ayarlayarak etkinleştirilebilir.

Makaleden özet

Transformer, bilgisayarla görüde son zamanlarda umut verici ilerlemeler kaydetmiştir. Bu çalışmada, orijinal Pyramid Vision Transformer'ı (PVT v1) (1) doğrusal karmaşıklıkta dikkat katmanı, (2) üst üste binen yama gömme ve (3) konvolüsyonel ileri beslemeli ağ olmak üzere üç tasarım ekleyerek iyileştiriyor ve yeni baz çizgileri sunuyoruz. Bu değişikliklerle PVT v2, PVT v1'in hesaplama karmaşıklığını doğrusal seviyeye indirger ve sınıflandırma, algılama ve segmentasyon gibi temel görü görevlerinde önemli iyileşmeler sağlar. Önemle belirtmek gerekir ki, önerilen PVT v2, Swin Transformer gibi son çalışmalara benzer veya daha iyi performanslar elde etmektedir. Bu çalışmanın, bilgisayarla görüdeki en son Transformer araştırmalarını kolaylaştırmasını umuyoruz. Kod https://github.com/whai362/PVT adresinde mevcuttur.

Bu model FoamoftheSea tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.

Kullanım ipuçları

  • PVTv2, görüntü sınıflandırma ve birçok diğer görevde güçlü performans sergileyen hiyerarşik bir transformer modelidir; Segformer'de anlamsal segmentasyon, GLPN'de monoküler derinlik tahmini ve Panoptic Segformer'de panoptik segmentasyon için omurga olarak kullanılmış olup benzer ResNet yapılandırmalarına tutarlı olarak daha yüksek performans göstermektedir.

  • PVTv2 gibi hiyerarşik transformerlar, konvolüsyonel sinir ağlarının (CNN) tasarım unsurlarını kodlayıcılarına entegre ederek, saf transformer mimarilerine kıyasla görüntü verilerinde üstün veri ve parametre verimliliği sağlar. Bu, çeviri eşdeğerliği ve yerellik gibi CNN'lerin faydalı indüktif önyargılarını ağa aktarırken, transformers'ın öz-dikkat mekanizmasının sağladığı dinamik veri yanıtı ve küresel ilişki modelleme avantajlarından da yararlanarak her iki dünyanın en iyi yönlerini birleştiren bir mimari oluşturur.

  • PVTv2, çok ölçekli özellik haritaları oluşturmak için üst üste binen yama gömme kullanır; bu haritalar, sıfır dolgu ve derinlik boyutlu konvolüsyonlar ile konum bilgisiyle zenginleştirilir.

  • Dikkat katmanlarındaki karmaşıklığı azaltmak için PVTv2, gizli durumlarda (hidden states) uzamsal indirgeme (spatial reduction) gerçekleştirir; bunun için sıralı 2D konvolüsyon (SRA) veya sabit boyutlu ortalama havuzlama (Linear SRA) kullanılır. Doğası gereği daha fazla bilgi kaybına yol açan Linear SRA, görüntü boyutuna göre doğrusal bir karmaşıklıkla etkileyici bir performans sağlar. Kendi-dikkat (self-attention) katmanlarında Linear SRA kullanmak için PvtV2Config içinde linear_attention=True değerini ayarlayın.

  • PvtV2Model, hiyerarşik transformer kodlayıcısıdır (edebiyatta genellikle Mix Transformer veya MiT olarak da anılır). PvtV2ForImageClassification, Image Classification işlemini gerçekleştirmek için bunun üzerine basit bir sınıflandırıcı başlığı ekler. PvtV2Backbone, Deformable DETR gibi daha büyük mimarilerde AutoBackbone sistemiyle birlikte kullanılabilir.

  • Tüm model boyutları için ImageNet önceden eğitilmiş ağırlıklar hub'da bulunabilir.

    PVTv2 ile başlamanın en iyi yolu, AutoModelForImageClassification kullanarak seçtiğiniz boyuttaki önceden eğitilmiş kontrol noktasını yüklemektir:

import requests
import torch
from PIL import Image

from transformers import AutoImageProcessor, AutoModelForImageClassification


model = AutoModelForImageClassification.from_pretrained("OpenGVLab/pvt_v2_b0", device_map="auto")
image_processor = AutoImageProcessor.from_pretrained("OpenGVLab/pvt_v2_b0")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
processed = image_processor(image)
outputs = model(torch.tensor(processed["pixel_values"]))

DeformableDETR gibi daha karmaşık mimarilerde PVTv2'yi bir omurga (backbone) olarak kullanmak için AutoBackbone kullanabilirsiniz (bu model, önceden eğitilmiş modeldeki omurganın değiştirilmesi ve rastgele ağırlıklarla başlatılması nedeniyle ince ayar gerektirir):

import requests
import torch
from PIL import Image

from transformers import AutoConfig, AutoImageProcessor, AutoModelForObjectDetection


model = AutoModelForObjectDetection.from_config(
    config=AutoConfig.from_pretrained(
        "SenseTime/deformable-detr",
        backbone_config=AutoConfig.from_pretrained("OpenGVLab/pvt_v2_b5"),
    ),
)

image_processor = AutoImageProcessor.from_pretrained("SenseTime/deformable-detr")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
processed = image_processor(image)
outputs = model(torch.tensor(processed["pixel_values"]))

Model boyutuna (B0-B5) göre ImageNet-1K üzerindeki PVTv2 performansı:

YöntemSizDoğruluk@1#Parametreler (M)
PVT-V2-B022470.53.7
PVT-V2-B122478.714.0
PVT-V2-B2-Linear22482.122.6
PVT-V2-B222482.025.4
PVT-V2-B322483.145.2
PVT-V2-B422483.662.6
PVT-V2-B522483.882.0

PvtV2Config

sınıf transformers.PvtV2Config

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneimage_size: int | list[int] | tuple[int, int] | dict = 224num_channels: int = 3num_encoder_blocks: int = 4depths: list[int] | tuple[int, ...] = (2, 2, 2, 2)sr_ratios: list[int] | tuple[int, ...] = (8, 4, 2, 1)hidden_sizes: list[int] | tuple[int, ...] = (32, 64, 160, 256)patch_sizes: list[int] | tuple[int, ...] = (7, 3, 3, 3)strides: list[int] | tuple[int, ...] = (4, 2, 2, 2)num_attention_heads: list[int] | tuple[int, ...] = (1, 2, 5, 8)mlp_ratios: list[int] | tuple[int, ...] = (8, 8, 4, 4)hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.0attention_probs_dropout_prob: float | int = 0.0initializer_range: float = 0.02drop_path_rate: float | int = 0.0layer_norm_eps: float = 1e-06qkv_bias: bool = Truelinear_attention: bool = False_out_features: list[str] | None = None_out_indices: list[int] | None = None )

Parametreler

  • image_size (Union[int, list[int], tuple[int, int], dict], isteğe bağlı, varsayılan 224) — Her bir görüntünün boyutu (çözünürlüğü).
  • num_channels (int, isteğe bağlı, varsayılan 3) — Giriş kanal sayısı.
  • num_encoder_blocks ([int], isteğe bağlı, varsayılan 4) — Encoder bloklarının sayısı (yani Mix Transformer encoder'ındaki aşamalar).
  • depths (Union[list[int], tuple[int, ...]], isteğe bağlı, varsayılan (2, 2, 2, 2)) — Transformer'daki her katmanın derinliği.
  • sr_ratios (list[int], isteğe bağlı, varsayılan [8, 4, 2, 1]) — Her kodlayıcı bloğundaki uzamsal azaltma oranları.
  • hidden_sizes (Union[list[int], tuple[int, ...]], isteğe bağlı, varsayılan (32, 64, 160, 256)) — Modelin her aşamasındaki boyutluluk (gizli boyut).
  • patch_sizes (list[int], isteğe bağlı, varsayılan [7, 3, 3, 3]) — Her kodlayıcı bloğundan önce üst üste binen yama gömme işlemi için yama boyutu.
  • strides (list[int], isteğe bağlı, varsayılan [4, 2, 2, 2]) — Her encoder bloğu öncesinde örtüşen yama gömme işlemi için stride.
  • num_attention_heads (list[int], isteğe bağlı, varsayılan [1, 2, 5, 8]) — Transformer kodlayıcısının her bloğundaki her dikkat katmanı için dikkat başlığı sayısı.
  • mlp_ratios (list[int], isteğe bağlı, varsayılan [8, 8, 4, 4]) — Encoder bloklarındaki Mix FFN'lerde gizli katman boyutunun giriş katman boyutuna oranı.
  • 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.
  • hidden_dropout_prob (Union[float, int], isteğe bağlı, varsayılan 0.0) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı.
  • attention_probs_dropout_prob (Union[float, int], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • drop_path_rate (Union[float, int], isteğe bağlı, varsayılan 0.0) — Patch füzyonu için drop path oranı.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-06) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • qkv_bias (bool, isteğe bağlı, varsayılan True) — Sorgulara, anahtarlara ve değerlere bir sapma eklenip eklenmeyeceği.
  • linear_attention (bool, isteğe bağlı, varsayılan False) — Doğrusal dikkat karmaşıklığını kullanır. True olarak ayarlanırsa, sr_ratio yok sayılır ve dikkat katmanlarında boyut indirgeme için strided convolution yerine ortalama havuzlama (average pooling) kullanılır.

Bu, PvtV2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Pvt V2 modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, OpenGVLab/pvt_v2_b0 ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Örnek:

>>> from transformers import PvtV2Model, PvtV2Config

>>> # Initializing a pvt_v2_b0 style configuration
>>> configuration = PvtV2Config()

>>> # Initializing a model from the OpenGVLab/pvt_v2_b0 style configuration
>>> model = PvtV2Model(configuration)

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

PvtForImageClassification

sınıf transformers.PvtV2ForImageClassification

< >

( config: PvtV2Config )

Parametreler

  • config (PvtV2Config) — 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() yöntemine bakın.

Pvt-v2 Model, [CLS] token'ının son gizli durumunun üzerine yerleştirilen doğrusal bir katman içeren bir görüntü sınıflandırma başlığına sahiptir; örneğin ImageNet için.

Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch 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

< >

( pixel_values: typing.Optional[torch.Tensor]labels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → ImageClassifierOutput or tuple(torch.Tensor)

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 PvtImageProcessor kullanılarak elde edilebilir. Ayrıntılar için PvtImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için PvtImageProcessor 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_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin 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 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.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

ImageClassifierOutput veya tuple(torch.Tensor)

A ImageClassifierOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (PvtV2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

PvtV2ForImageClassification 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ü önceki, ö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 birer 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 (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, patch_size, sequence_length).

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

Örnek:

>>> from transformers import AutoImageProcessor, PvtV2ForImageClassification
>>> import torch
>>> from datasets import load_dataset

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

>>> image_processor = AutoImageProcessor.from_pretrained("OpenGVLab/pvt_v2_b0")
>>> model = PvtV2ForImageClassification.from_pretrained("OpenGVLab/pvt_v2_b0")

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

PvtModel

sınıf transformers.PvtV2Model

< >

( config: PvtV2Config )

Parametreler

  • config (PvtV2Config) — 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() yöntemine bakın.

Üzerinde herhangi bir özel head olmadan ham hidden-states üreten çıplak Pvt V2 Model.

Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch 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

< >

( pixel_values: Tensoroutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutput or tuple(torch.Tensor)

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 PvtImageProcessor kullanılarak elde edilebilir. Ayrıntılar için PvtImageProcessor.call() bölümüne bakın (processor_class, görüntüleri işlemek için PvtImageProcessor kullanı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ülmeyeceğ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.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

BaseModelOutput veya tuple(torch.Tensor)

Bir BaseModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (PvtV2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

PvtV2Model 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ü önceki, ö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.

  • 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 birer 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 (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

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

Update on GitHub