Transformers documentation

Perceiver

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-07-30 tarihinde HF papers'ta yayımlandı ve 2021-12-08 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

Perceiver

Genel Bakış

Perceiver IO modeli, Andrew Jaegle, Sebastian Borgeaud, Jean-Baptiste Alayrac, Carl Doersch, Catalin Ionescu, David Ding, Skanda Koppula, Daniel Zoran, Andrew Brock, Evan Shelhamer, Olivier Hénaff, Matthew M. Botvinick, Andrew Zisserman, Oriol Vinyals ve João Carreira tarafından Perceiver IO: A General Architecture for Structured Inputs & Outputs makalesinde önerilmiştir.

Perceiver IO, Perceiver'nin keyfi girdilerin yanı sıra keyfi çıktıları da işleyecek şekilde genelleştirilmiş halidir. Orijinal Perceiver yalnızca tek bir sınıflandırma etiketi üretiyordu. Sınıflandırma etiketlerinin yanı sıra Perceiver IO, örneğin dil, optik akış ve sesli çok modlu videolar üretebilir. Bu, orijinal Perceiver ile aynı yapı taşları kullanılarak gerçekleştirilir. Perceiver IO'nun hesaplama karmaşıklığı, girdi ve çıktı boyutuna doğrusaldır ve işlemenin büyük bölümü gizli (latent) uzayda gerçekleşir; bu da standart Transformers ile işlenemeyecek kadar büyük girdi ve çıktıları işlememizi sağlar. Bu, örneğin, Perceiver IO'nun tokenize edilmiş girdiler yerine doğrudan baytlar kullanarak BERT tarzı maskeli dil modellemesi yapabildiği anlamına gelir.

Makalenin özeti aşağıdaki gibidir:

Yakın zamanda önerilen Perceiver modeli, hesaplama ve bellek kullanımını girdi boyutuyla lineer ölçeklendirirken görüntü, ses, çok modlu ve nokta bulutu gibi çeşitli alanlarda iyi sonuçlar elde eder. Perceiver birçok türde girdiyi desteklese de, sınıf puanları gibi çok basit çıktılar üretebilir. Perceiver IO, modelin gizli uzayını esnek bir şekilde sorgulayarak keyfi boyut ve semantiğe sahip çıktılar üretmeyi öğrenerek bu sınırlamayı, orijinalin çekici özelliklerinden ödün vermeden aşar. Perceiver IO, model derinliğini veri boyutundan hâlâ ayrıştırır ve hâlâ veri boyutuyla lineer ölçeklenir; ancak artık bu ölçekleme hem girdi hem de çıktı boyutlarına göre yapılır. Tam Perceiver IO modeli, doğal dil ve görsel anlama, StarCraft II, çoklu görev ve çok modlu alanlar gibi yüksek derecede yapılandırılmış çıktı uzaylarına sahip görevlerde güçlü sonuçlar elde eder. Öne çıkanlar arasında, Perceiver IO'nun girdi tokenizasyonu gerektirmeden GLUE dil benchmark'ında Transformer tabanlı BERT baz çizgisini yakalaması ve Sintel optik akış tahmininde en iyi performansı (state-of-the-art) sağlaması yer alır.

Perceiver'ın nasıl çalıştığını açıklayan bir TLDR:

Transformer'ın öz-dikkat mekanizmasının ana sorunu, zaman ve bellek gereksinimlerinin dizi uzunluğuyla karesel olarak ölçeklenmesidir. Bu nedenle BERT ve RoBERTa gibi modeller 512 token'lık maksimum dizi uzunluğuyla sınırlıdır. Perceiver, bu sorunu çözmek için girdiler üzerinde öz-dikkat yerine bir grup gizli değişken üzerinde dikkat uygulayarak ve girdileri yalnızca çapraz-dikkat için kullanarak bu sorunu ele alır. Bu sayede, 256 veya 512 gibi sabit bir miktarda gizli değişken kullanıldığı için zaman ve bellek gereksinimleri artık girdilerin uzunluğuna bağlı değildir. Bu değişkenler rastgele başlatılır ve ardından geri yayılım kullanılarak uçtan uca eğitilir.

İçeride PerceiverModel, (batch_size, num_latents, d_latents) biçiminde bir tensör olan latents'leri oluşturur. Modelin, latents'lerle çapraz dikkat (cross-attention) işlemi gerçekleştirmek için kullanacağı inputs (metin, görsel, ses, aklınıza ne gelirse!) sağlanmalıdır. Perceiver kodlayıcısının çıktısı, aynı biçimde bir tensördür. Ardından, BERT'te olduğu gibi, latents'lerin son gizli durumlarını (last hidden states) sıralama boyutu boyunca ortalayarak ve bunun üzerine d_latents'i num_labels'e yansıtmak için bir doğrusal katman (linear layer) yerleştirerek sınıflandırma logit'lerine dönüştürebilirsiniz.

Bu, orijinal Perceiver makalesinin fikriydi. Ancak yalnızca sınıflandırma logitleri üretebiliyordu. Bir sonraki çalışmada, PerceiverIO, modeli keyfi boyutta çıktılar üretmeye de olanak tanıyacak şekilde genelleştirdiler. Peki nasıl? Fikir aslında oldukça basit: keyfi boyutta çıktılar tanımlanır ve ardından, bu çıktılar sorgu (query) olarak, latentler ise anahtar (key) ve değer (value) olarak kullanılarak, latentlerin son gizli durumları üzerinde çapraz dikkat (cross-attention) uygulanır.

Diyelim ki Perceiver ile maskeli dil modelleme (BERT tarzı) yapmak isteniyor. Perceiver'ın giriş uzunluğu, öz-dikkat katmanlarının hesaplama süresini etkilemediğinden, modele inputs olarak 2048 uzunluğunda ham baytlar sağlanabilir. Bu 2048 token'ın belirli bir kısmı maskelendiğinde, outputs şu şekle sahip olarak tanımlanabilir: (batch_size, 2048, 768). Ardından, latentlerin son gizli durumlarıyla çapraz dikkat (cross-attention) uygulanarak outputs tensörü güncellenir. Çapraz dikkat işleminden sonra hâlâ (batch_size, 2048, 768) şeklinde bir tensör elde edilir. Daha sonra, son boyutu modelin sözlük boyutuna yansıtmak için üzerine standart bir dil modelleme başlığı (head) yerleştirilebilir; bu da (batch_size, 2048, 262) şeklinde logitler oluşturur (Perceiver, 262 bayt kimliğinden oluşan bir sözlük boyutu kullanır).

drawing Perceiver IO architecture. Taken from the original paper

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

Perceiver, PyTorch'taki bir hata nedeniyle torch.nn.DataParallel ile çalışmaz; bkz. issue #36035

Kaynaklar

Perceiver'e özgü çıktılar

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverModelOutput

< >

( logits: typing.Optional[torch.Tensor] = Nonelast_hidden_state: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = None )

Parametreler

  • logits (torch.Tensor, şekli (batch_size, num_labels)) — Sınıflandırma (config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).
  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.
  • hidden_states (tuple[torch.Tensor], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: 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) ve şekli (batch_size, sequence_length, hidden_size).

    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ı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet: torch.Tensor (şeklinde, her katman için bir adet (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.

  • cross_attentions (tuple[torch.Tensor], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir tane (batch_size, num_heads, sequence_length, sequence_length).

    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.

Perceiver taban modelinin çıktıları için taban sınıf; potansiyel gizli durumlar, dikkatler ve çapraz dikkatler içerir.

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverDecoderOutput

< >

( logits: typing.Optional[torch.Tensor] = Nonecross_attentions: tuple[torch.Tensor] | None = None )

Parametreler

  • logits (torch.Tensor, şekli (batch_size, num_labels)) — Temel çözücünün çıktısı.
  • cross_attentions (tuple[torch.Tensor], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir tane (batch_size, num_heads, sequence_length, sequence_length).

    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.

Perceiver decoder çıktılarının taban sınıfı, olası çapraz dikkat (cross-attention) mekanizmalarıyla birlikte.

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverMaskedLMOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = None )

Parametreler

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Maskeli dil modelleme (MLM) kaybı.
  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).
  • hidden_states (tuple[torch.Tensor], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: 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) ve şekli (batch_size, sequence_length, hidden_size).

    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ı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet: torch.Tensor (şeklinde, her katman için bir adet (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.

  • cross_attentions (tuple[torch.Tensor], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir tane (batch_size, num_heads, sequence_length, sequence_length).

    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.

Perceiver'in maskeli dil modeli çıktıları için temel sınıf.

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverClassifierOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = None )

Parametreler

  • 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ı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: 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) ve şekli (batch_size, sequence_length, hidden_size).

    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ı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet: torch.Tensor (şeklinde, her katman için bir adet (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.

  • cross_attentions (tuple[torch.Tensor], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir tane (batch_size, num_heads, sequence_length, sequence_length).

    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.

Sıralama/görüntü sınıflandırma modelleri, optik akış ve çok modlu oto-kodlama için Perceiver çıktılarının temel sınıfı.

PerceiverConfig

sınıf transformers.PerceiverConfig

< >

( 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 = Nonenum_latents: int = 256d_latents: int = 1280d_model: int = 768num_blocks: int = 1num_self_attends_per_block: int = 26num_self_attention_heads: int = 8num_cross_attention_heads: int = 8qk_channels: int | None = Nonev_channels: int | None = Nonecross_attention_shape_for_attention: str = 'kv'self_attention_widening_factor: int = 1cross_attention_widening_factor: int = 1hidden_act: str = 'gelu'attention_probs_dropout_prob: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-12use_query_residual: bool = Truevocab_size: int = 262max_position_embeddings: int = 2048image_size: int | list[int] | tuple[int, int] = 56train_size: list[int] | tuple[int, ...] = (368, 496)num_frames: int = 16audio_samples_per_frame: int = 1920samples_per_patch: int = 16output_shape: list[int] | tuple[int, ...] = (1, 16, 224, 224)output_num_channels: int = 512_label_trainable_num_channels: int = 1024 )

Parametreler

  • num_latents (int, isteğe bağlı, varsayılan 256) — Latent sayısı.
  • d_latents (int, isteğe bağlı, varsayılan 1280) — Gizli gömme boyutu.
  • d_model (int, isteğe bağlı, varsayılan 768) — Kodlayıcı katmanlarının ve pooler katmanının boyutu.
  • num_blocks (int, isteğe bağlı, varsayılan 1) — Transformer kodlayıcısındaki blok sayısı.
  • num_self_attends_per_block (int, isteğe bağlı, varsayılan 26) — Blok başına self-attention katman sayısı.
  • num_self_attention_heads (int, isteğe bağlı, varsayılan 8) — Transformer kodlayıcısındaki her öz-dikkat katmanı için dikkat başı sayısı.
  • num_cross_attention_heads (int, isteğe bağlı, varsayılan 8) — Transformer kodlayıcısındaki her çapraz dikkat katmanı için dikkat başlığı sayısı.
  • qk_channels (int, opsiyonel) — Encoder'ın çapraz dikkat ve kendine dikkat katmanlarında dikkat uygulanmadan önce sorguları ve anahtarları projekte etmek için kullanılan boyut. Belirtilmezse, sorguların boyutunu korumak için varsayılan olarak kullanılır.
  • v_channels (int, isteğe bağlı) — Encoder'daki cross-attention ve self-attention katmanlarında dikkat uygulanmadan önce değerlerin projekte edileceği boyut. Belirtilmezse, sorguların boyutunu korumak için varsayılan olarak kullanılır.
  • cross_attention_shape_for_attention (str, isteğe bağlı, varsayılan "kv") — Encoder'ın cross-attention katmanında sorguların ve anahtarların indirgenmesinde kullanılacak boyut.
  • self_attention_widening_factor (int, isteğe bağlı, varsayılan 1) — Transformer kodlayıcısının çapraz dikkat katmanındaki ileri beslemeli katmanın boyutu.
  • cross_attention_widening_factor (int, isteğe bağlı, varsayılan 1) — Transformer kodlayıcısının kendine dikkat katmanlarındaki ileri beslemeli katmanın boyutu.
  • 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.
  • attention_probs_dropout_prob (Union[float, int], isteğe bağlı, varsayılan 0.1) — 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ı.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-12) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • use_query_residual (float, isteğe bağlı, varsayılan True) — Encoder'ın çapraz dikkat katmanında bir sorgu artığı eklenip eklenmeyeceğini belirtir.
  • vocab_size (int, isteğe bağlı, varsayılan 262) — Modelin sözlük boyutu. input_ids ile temsil edilebilecek farklı token sayısını tanımlar.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 2048) — Bu modelin kullanılabileceği en uzun dizi uzunluğu.
  • image_size (int, isteğe bağlı, varsayılan 56) — PerceiverForImageClassificationLearned için ön işlemden sonra görüntülerin boyutu.
  • train_size (list[int], isteğe bağlı, varsayılan [368, 496]) — Optik akış modeli için eğitim görüntülerinin boyutu.
  • num_frames (int, isteğe bağlı, varsayılan 16) — Çok modlu oto-kodlama modelinde kullanılan video kare sayısı.
  • audio_samples_per_frame (int, isteğe bağlı, varsayılan 1920) — Çok modlu oto-kodlama modeli için çerçe başına ses örnek sayısı.
  • samples_per_patch (int, isteğe bağlı, varsayılan 16) — Çok modlu oto-kodlama modeli için ses ön işleme sırasında yama başına ses örnek sayısı.
  • output_shape (list[int], isteğe bağlı, varsayılan [1, 16, 224, 224]) — Çok modlu oto-kodlama modelinin video çözücü sorguları için çıktı biçimi (batch_size, num_frames, height, width). Bu, kanal boyutunu içermez.
  • output_num_channels (int, isteğe bağlı, varsayılan 512) — Her modalite çözücü için çıktı kanal sayısı.

Bu, bir PerceiverModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Perceiver modelinin örneklenmesi ve model mimarisinin tanımlanması için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, deepmind/language-perceiver 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 PerceiverModel, PerceiverConfig

>>> # Initializing a Perceiver deepmind/language-perceiver style configuration
>>> configuration = PerceiverConfig()

>>> # Initializing a model from the deepmind/language-perceiver style configuration
>>> model = PerceiverModel(configuration)

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

PerceiverTokenizer

sınıf transformers.PerceiverTokenizer

< >

( pad_token = '[PAD]'bos_token = '[BOS]'eos_token = '[EOS]'mask_token = '[MASK]'cls_token = '[CLS]'sep_token = '[SEP]'model_max_length = 2048**kwargs )

Parametreler

  • pad_token (str, isteğe bağlı, varsayılan "[PAD]") — Doldurma için kullanılan jeton, örneğin farklı uzunluklardaki dizileri toplu işleme (batching) sırasında.
  • bos_token (str, isteğe bağlı, varsayılan "[BOS]") — BOS belirteci (sözlükte ayrılmış ancak fiilen kullanılmayan).
  • eos_token (str, isteğe bağlı, varsayılan olarak "[EOS]") — Dizi sonu belirteci (sözlükte ayrılmış, ancak fiilen kullanılmayan). Özel belirteçler kullanılarak bir dizi oluşturulduğunda, dizi sonu için kullanılan belirteç bu değildir. Kullanılan belirteç sep_token'dir.

    Özel jetonlar kullanılarak bir dizi oluşturulduğunda, dizinin sonu için kullanılan jeton bu değildir. Kullanılan jeton sep_token'dir.

  • mask_token (str, isteğe bağlı, varsayılan "[MASK]") — MASK jetonu, maskeli dil modellemesi için kullanışlıdır.
  • cls_token (str, isteğe bağlı, varsayılan "[CLS]") — CLS belirteci (sözlükte ayrılmış ancak fiilen kullanılmayan).
  • sep_token (str, isteğe bağlı, varsayılan "[SEP]") — İki diziden bir dizi oluşturulurken kullanılan ayraç belirteci.

Bir Perceiver tokenizer'ı oluşturun. Perceiver, basitçe ham baytların utf-8 kodlamasını kullanır.

Bu tokenizer, ana yöntemlerin çoğunu içeren PreTrainedTokenizer sınıfından devralır. Kullanıcıların bu yöntemler hakkında daha fazla bilgi için bu üst sınıfa başvurması gerekir.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Parametreler

  • text (str, list[str], list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa, is_split_into_words=True değerini ayarlamalısınız (dizi grubu ile karışıklığı önlemek için).
  • text_pair (str, list[str], list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa, is_split_into_words=True değerini ayarlamalısınız (dizi grubu ile belirsizliği gidermek için).
  • text_target (str, list[str], list[list[str]], isteğe bağlı) — Hedef metin olarak kodlanacak dizi veya dizi grubu. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa, is_split_into_words=True değerini ayarlamanız gerekir (dizi grubu ile belirsizliği gidermek için).
  • text_pair_target (str, list[str], list[list[str]], isteğe bağlı) — Hedef metinler olarak kodlanacak dizi veya dizi partisi. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa, is_split_into_words=True değerini ayarlamanız gerekir (dizi partisiyle olan belirsizliği gidermek için).
  • tokenizer_kwargs (dict[str, Any], isteğe bağlı) — Tokenizöre iletilecek ek kwargs. Bunlar, açık parametreler ve diğer kwargs ile birleştirilir; açık parametreler önceliklidir.
  • add_special_tokens (bool, isteğe bağlı, varsayılan True) — Dizileri kodlarken özel token eklenip eklenmeyeceğini belirtir. Bu, girdi kimliklerine otomatik olarak hangi tokenların ekleneceğini tanımlayan alttaki PretrainedTokenizerBase.build_inputs_with_special_tokens işlevini kullanır. bos veya eos tokenlarını otomatik olarak eklemek istiyorsanız bu işe yarar.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak False) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanırsa dolgu yapılmaz).
    • 'max_length': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.
    • False veya 'do_not_pad' (varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
  • truncation (bool, str veya TruncationStrategy, isteğe bağlı, varsayılan olarak False) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltılır. Bu işlem, token bazında kısaltma yapar; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.
    • 'only_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.
    • 'only_second': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltılır. Bu, bir dizi çifti (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.
    • False veya 'do_not_truncate' (varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
  • max_length (int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.

    Eğer ayarlanmazsa veya None olarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır.

  • stride (int, isteğe bağlı, varsayılan 0) — max_length ile birlikte bir sayıya ayarlanırsa, return_overflowing_tokens=True olduğunda döndürülen taşan jetonlar, kısaltılmış ve taşan diziler arasında bazı örtüşme sağlamak için kısaltılmış dizinin sonundan bazı jetonları içerir. Bu argümanın değeri, örtüşen jeton sayısını tanımlar.
  • is_split_into_words (bool, isteğe bağlı, varsayılan False) — Girdinin zaten önceden tokenize edilip edilmediğini (örneğin, kelimelere ayrılmış olup olmadığını) belirtir. True olarak ayarlanırsa, tokenizer, girdinin zaten kelimelere ayrılmış olduğunu (örneğin, boşluklara göre bölünerek) ve bunları tokenize edeceğini varsayar. Bu, NER veya token sınıflandırma için faydalıdır.
  • pad_to_multiple_of (int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur. Bunun için padding etkinleştirilmelidir. Bu, hesaplama yeteneği >= 7.5 (Volta) olan NVIDIA donanımlarında Tensor Çekirdeklerinin kullanımını etkinleştirmek için özellikle faydalıdır.
  • padding_side (str, isteğe bağlı) — Modelin padding uygulanması gereken tarafı. [‘right’, ‘left’] arasından seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': Numpy np.ndarray nesnelerini döndürür.
  • return_token_type_ids (bool, isteğe bağlı) — Token type ID'lerinin döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre token type ID'lerini döndürür; bu, return_outputs özniteliği tarafından tanımlanır.

    Token type ID'leri nelerdir?

  • return_attention_mask (bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre dikkat maskesini döndürür; bu, return_outputs özniteliği ile tanımlanır.

    Dikkat maskeleri nedir?

  • return_overflowing_tokens (bool, isteğe bağlı, varsayılan False) — Taşan token dizilerinin döndürülüp döndürülmeyeceği. Girdi kimlikleri çiftlerinden (veya çiftlerden oluşan bir partiden) truncation_strategy = longest_first veya True ile sağlanırsa, taşan tokenlar döndürülmek yerine bir hata oluşturulur.
  • return_special_tokens_mask (bool, isteğe bağlı, varsayılan False) — Özel jeton maskesi bilgisinin döndürülüp döndürülmemesi.
  • return_offsets_mapping (bool, isteğe bağlı, varsayılan olarak False) — Her token için (char_start, char_end) dönüp döndürmeyeceğini belirtir.

    Bu özellik yalnızca PreTrainedTokenizerFast sınıfından türeyen hızlı tokenizörlerde kullanılabilir; Python tokenizörü kullanılırsa bu yöntem NotImplementedError hatası fırlatır.

  • return_length (bool, isteğe bağlı, varsayılan False) — Kodlanmış girdilerin uzunluklarının döndürülüp döndürülmeyeceği.
  • verbose (bool, isteğe bağlı, varsayılan True) — Daha fazla bilgi ve uyarı basılıp basılmayacağı.
  • **kwargs — self.tokenize() yöntemine iletilir

Dönüş değeri

BatchEncoding

Aşağıdaki alanlara sahip bir BatchEncoding:

  • input_ids — Bir modele verilecek token kimliklerinin listesi.

    Girdi kimlikleri nelerdir?

  • token_type_ids — Bir modele verilecek token türü kimlikleri listesi (return_token_type_ids=True olduğunda veya “token_type_ids”, self.model_input_names içinde olduğunda).

    Token type ID'leri nelerdir?

  • attention_mask — Modelin hangi jetonlara dikkat etmesi gerektiğini belirleyen indeks listesi (return_attention_mask=True olduğunda veya self.model_input_names içinde “attention_mask” varsa).

    Dikkat maskeleri nedir?

  • overflowing_tokens — Taşan token dizileri listesi (max_length belirtildiğinde ve return_overflowing_tokens=True olduğunda).

  • num_truncated_tokens — Kırpılan token sayısı (max_length belirtildiğinde ve return_overflowing_tokens=True olduğunda).

  • special_tokens_mask — 0 ve 1'lerden oluşan liste; 1 eklenen özel tokenları, 0 ise normal dizi tokenlarını belirtir (add_special_tokens=True ve return_special_tokens_mask=True olduğunda).

  • length — Girdilerin uzunluğu (return_length=True olduğunda)

Bir veya birden fazla diziyi veya bir veya birden fazla dizi çiftini belirteçlere ayırmak ve model için hazırlamak için ana yöntem.

PerceiverImageProcessor

sınıf transformers.PerceiverImageProcessor

< >

( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )

Parametreler

  • do_convert_rgb (bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi.
  • do_resize (bool, kwargs, isteğe bağlı, varsayılan True) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan {'height' -- 224, 'width': 224}): Modelin kabul ettiği maksimum giriş boyutlarını açıklar.
  • default_to_square (bool, kwargs, isteğe bağlı, varsayılan True) — size bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağı.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan {'height' -- 256, 'width': 256}): center_crop uygulandıktan sonra çıktı görüntüsünün boyutu.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, varsayılan 3) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, PILImageResampling enum değerlerinden biri olabilir. Yalnızca do_resize True olarak ayarlanırsa etkilidir.
  • do_rescale (bool, kwargs, isteğe bağlı, varsayılan True) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği.
  • rescale_factor (float, kwargs, opsiyonel, varsayılan 0.00392156862745098) — do_rescale True olarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü.
  • do_normalize (bool, kwargs, opsiyonel, varsayılan True) — Görselin normalize edilip edilmeyeceği.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan [0.485, 0.456, 0.406]) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızca do_normalize True olarak ayarlanırsa etkilidir.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan [0.229, 0.224, 0.225]) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca do_normalize True olarak ayarlanırsa etkilidir.
  • do_pad (bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut, {"height": int, "width" int} biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır. pad_size sağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca do_pad=True. olduğunda uygulanır.
  • do_center_crop (bool, kwargs, opsiyonel, varsayılan True) — Görselin ortadan kırpılıp kırpılmayacağı.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Yalnızca ChannelDimension.FIRST desteklenir. Yavaş işleyicilerle uyumluluk için eklendi.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:
    • "channels_first" veya ChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü.
    • "channels_last" veya ChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
    • "none" veya ChannelDimension.NONE: (height, width) biçiminde görüntü.
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür.
  • disable_grouping (bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır.

Bir PerceiverImageProcessor görüntü işleyicisi oluşturur.

ön işleme

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature

Parametreler

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Ön işleme uygulanacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsa do_rescale=False olarak ayarlayın.
  • image_like_kwargs (dict[str, Any], isteğe bağlı) — Ayrıca ön işleme yapılacak ek görüntü benzeri girdiler için geliştirici bayrağı. Girdileri kwarg olarak geçirmek işe yaramadığında yalnızca bu bayrağı kullanın. Örneğin, preprocess(images, masks=masks) tercih edilen seçenektir ancak bazı modellerde argüman öncelik sorunlarına yol açar. Bu durumlarda bunun yerine preprocess(images, image_like_inputs={"masks": masks}) kullanılabilir.
  • do_convert_rgb (bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi.
  • do_resize (bool, kwargs, opsiyonel) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Modelin kabul ettiği maksimum giriş boyutlarını açıklar.
  • default_to_square (bool, kwargs, opsiyonel) — Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntüye geçilip geçilmeyeceği.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — center_crop uygulandıktan sonra çıktı görüntüsünün boyutu.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, PILImageResampling enum değerlerinden biri olabilir. Yalnızca do_resize True olarak ayarlanırsa etkilidir.
  • do_rescale (bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği.
  • rescale_factor (float, kwargs, opsiyonel) — do_rescale True olarak ayarlanırsa görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü.
  • do_normalize (bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızca do_normalize True olarak ayarlanırsa etkilidir.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca do_normalize True olarak ayarlanmışsa etkilidir.
  • do_pad (bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut, {"height": int, "width" int} biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır. pad_size sağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca do_pad=True. olduğunda uygulanır.
  • do_center_crop (bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Yalnızca ChannelDimension.FIRST desteklenir. Yavaş işleyicilerle uyumluluk için eklendi.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:
    • "channels_first" veya ChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü.
    • "channels_last" veya ChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
    • "none" veya ChannelDimension.NONE: (height, width) biçiminde görüntü.
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür.
  • disable_grouping (bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır.

Dönüş değeri

~image_processing_base.BatchFeature

  • data (dict) — call yönteminin döndürdüğü listeler/diziler/tensörler sözlüğü (‘pixel_values’ vb.).
  • tensor_type (Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.

Bir görüntüyü veya bir görüntü grubunu ön işleme tabi tutun.

PerceiverImageProcessorPil

sınıf transformers.PerceiverImageProcessorPil

< >

( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )

Parametreler

  • do_convert_rgb (bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi.
  • do_resize (bool, kwargs, isteğe bağlı, varsayılan True) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan {'height' -- 224, 'width': 224}): Modelin kabul ettiği maksimum giriş boyutlarını açıklar.
  • default_to_square (bool, kwargs, isteğe bağlı, varsayılan True) — size bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağı.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan {'height' -- 256, 'width': 256}): center_crop uygulandıktan sonra çıktı görüntüsünün boyutu.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, varsayılan 3) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, PILImageResampling enum değerlerinden biri olabilir. Yalnızca do_resize True olarak ayarlanırsa etkilidir.
  • do_rescale (bool, kwargs, isteğe bağlı, varsayılan True) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği.
  • rescale_factor (float, kwargs, opsiyonel, varsayılan 0.00392156862745098) — do_rescale True olarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü.
  • do_normalize (bool, kwargs, opsiyonel, varsayılan True) — Görselin normalize edilip edilmeyeceği.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan [0.485, 0.456, 0.406]) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızca do_normalize True olarak ayarlanırsa etkilidir.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan [0.229, 0.224, 0.225]) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca do_normalize True olarak ayarlanırsa etkilidir.
  • do_pad (bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut, {"height": int, "width" int} biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır. pad_size sağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca do_pad=True. olduğunda uygulanır.
  • do_center_crop (bool, kwargs, opsiyonel, varsayılan True) — Görselin ortadan kırpılıp kırpılmayacağı.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Yalnızca ChannelDimension.FIRST desteklenir. Yavaş işleyicilerle uyumluluk için eklendi.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:
    • "channels_first" veya ChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü.
    • "channels_last" veya ChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
    • "none" veya ChannelDimension.NONE: (height, width) biçiminde görüntü.
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür.
  • disable_grouping (bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır.

Bir PerceiverImageProcessor görüntü işleyicisi oluşturur.

ön işleme

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature

Parametreler

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Ön işleme uygulanacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsa do_rescale=False olarak ayarlayın.
  • image_like_kwargs (dict[str, Any], isteğe bağlı) — Ayrıca ön işleme yapılacak ek görüntü benzeri girdiler için geliştirici bayrağı. Girdileri kwarg olarak geçirmek işe yaramadığında yalnızca bu bayrağı kullanın. Örneğin, preprocess(images, masks=masks) tercih edilen seçenektir ancak bazı modellerde argüman öncelik sorunlarına yol açar. Bu durumlarda bunun yerine preprocess(images, image_like_inputs={"masks": masks}) kullanılabilir.
  • do_convert_rgb (bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi.
  • do_resize (bool, kwargs, opsiyonel) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Modelin kabul ettiği maksimum giriş boyutlarını açıklar.
  • default_to_square (bool, kwargs, opsiyonel) — Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntüye geçilip geçilmeyeceği.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — center_crop uygulandıktan sonra çıktı görüntüsünün boyutu.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, PILImageResampling enum değerlerinden biri olabilir. Yalnızca do_resize True olarak ayarlanırsa etkilidir.
  • do_rescale (bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği.
  • rescale_factor (float, kwargs, opsiyonel) — do_rescale True olarak ayarlanırsa görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü.
  • do_normalize (bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızca do_normalize True olarak ayarlanırsa etkilidir.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca do_normalize True olarak ayarlanmışsa etkilidir.
  • do_pad (bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut, {"height": int, "width" int} biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır. pad_size sağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca do_pad=True. olduğunda uygulanır.
  • do_center_crop (bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Yalnızca ChannelDimension.FIRST desteklenir. Yavaş işleyicilerle uyumluluk için eklendi.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:
    • "channels_first" veya ChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü.
    • "channels_last" veya ChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü.
    • "none" veya ChannelDimension.NONE: (height, width) biçiminde görüntü.
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — 'pt' olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür.
  • disable_grouping (bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır.

Dönüş değeri

~image_processing_base.BatchFeature

  • data (dict) — call yönteminin döndürdüğü listeler/diziler/tensörler sözlüğü (‘pixel_values’ vb.).
  • tensor_type (Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.

Bir görüntüyü veya bir görüntü grubunu ön işleme tabi tutun.

PerceiverTextPreprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverTextPreprocessor

< >

( config: PerceiverConfig )

Parametreler

Perceiver Encoder için metin ön işleme. inputs gömülebilir ve konumsal kodlamalar eklenebilir.

Gömme boyutları, yapılandırmanın d_model özniteliği tarafından belirlenir.

PerceiverImagePreprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverImagePreprocessor

< >

( configprep_type = 'conv'spatial_downsample: int = 4temporal_downsample: int = 1position_encoding_type: str = 'fourier'in_channels: int = 3out_channels: int = 64conv_after_patching: bool = Falseconv_after_patching_in_channels: int = 54conv2d_use_batchnorm: bool = Trueconcat_or_add_pos: str = 'concat'project_pos_dim: int = -1**position_encoding_kwargs )

Parametreler

  • config ([PerceiverConfig]) — Model yapılandırması.
  • prep_type (str, isteğe bağlı, varsayılan "conv") — Önişleme türü. “conv1x1”, “conv”, “patches”, “pixels” olabilir.
  • spatial_downsample (int, isteğe bağlı, varsayılan 4) — Uzamsal indirgeme çarpanı.
  • temporal_downsample (int, isteğe bağlı, varsayılan 1) — Zamansal indirgeme çarpanı (yalnızca bir zaman boyutu varsa geçerlidir).
  • position_encoding_type (str, isteğe bağlı, varsayılan "fourier") — Konum kodlama türü. “fourier” veya “trainable” olabilir.
  • in_channels (int, isteğe bağlı, varsayılan 3) — Girdideki kanal sayısı.
  • out_channels (int, isteğe bağlı, varsayılan 64) — Çıktıdaki kanal sayısı.
  • conv_after_patching (bool, isteğe bağlı, varsayılan False) — Patching işleminden sonra bir konvolüsyon katmanı uygulanıp uygulanmayacağı.
  • conv_after_patching_in_channels (int, opsiyonel, varsayılan 54) — Patchleme işleminden sonra konvolüsyon katmanının girdisindeki kanal sayısı.
  • conv2d_use_batchnorm (bool, isteğe bağlı, varsayılan True) — Kovaryans katmanında batch normalization kullanılıp kullanılmayacağı.
  • concat_or_add_pos (str, opsiyonel, varsayılan "concat") — Konum kodlamasının girdiye nasıl birleştirileceğini belirtir. “concat” veya “add” olabilir.
  • project_pos_dim (int, isteğe bağlı, varsayılan -1) — Projeksiyonun uygulanacağı konum kodlaması boyutu. -1 ise projeksiyon uygulanmaz.
  • **position_encoding_kwargs (Dict, isteğe bağlı) — Konum kodlaması için anahtar kelime argümanları.

Perceiver Encoder için görüntü ön işleme.

Not: out_channels argümanı, prep_type “conv1x1” veya “conv” olarak ayarlandığında bir konvolüsyon katmanının çıktı kanallarına atıfta bulunur. Mutlak konum gömme eklenirse, konum kodlama kwargs'larının num_channels değerinin out_channels ile eşit olduğundan emin olunmalıdır.

PerceiverOneHotPreprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverOneHotPreprocessor

< >

( config: PerceiverConfig )

Parametreler

Perceiver Encoder için tek-sıcak (one-hot) ön işleyici. Girdiye sahte bir indeks boyutu eklemek için kullanılabilir.

PerceiverAudioPreprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverAudioPreprocessor

< >

( configprep_type: str = 'patches'samples_per_patch: int = 96position_encoding_type: str = 'fourier'concat_or_add_pos: str = 'concat'out_channels = 64project_pos_dim = -1**position_encoding_kwargs )

Parametreler

  • config ([PerceiverConfig]) — Model yapılandırması.
  • prep_type (str, isteğe bağlı, varsayılan "patches") — Kullanılacak ön işleyici türü. Yalnızca “patches” desteklenir.
  • samples_per_patch (int, isteğe bağlı, varsayılan 96) — Paket başına örnek sayısı.
  • position_encoding_type (str, isteğe bağlı, varsayılan "fourier") — Kullanılacak konum kodlaması türü. “trainable” veya “fourier” olabilir.
  • concat_or_add_pos (str, opsiyonel, varsayılan "concat") — Konum kodlamasının girdiye nasıl birleştirileceğini belirtir. “concat” veya “add” olabilir.
  • out_channels (int, isteğe bağlı, varsayılan 64) — Çıktıdaki kanal sayısı.
  • project_pos_dim (int, isteğe bağlı, varsayılan -1) — Projeksiyonun uygulanacağı konum kodlaması boyutu. -1 ise projeksiyon uygulanmaz.
  • **position_encoding_kwargs (Dict, isteğe bağlı) — Konum kodlaması için anahtar kelime argümanları.

Perceiver Encoder için ses ön işleme.

PerceiverMultimodalPreprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverMultimodalPreprocessor

< >

( modalities: Mappingmask_probs: collections.abc.Mapping[str, float] | None = Nonemin_padding_size: int = 2 )

Parametreler

  • modalities (Mapping[str, PreprocessorType]) — Modalite adını ön işleyiciye eşleyen sözlük.
  • mask_probs (dict[str, float]) — Modallık adını, o modallığın maskeleme olasılığına eşleyen sözlük.
  • min_padding_size (int, isteğe bağlı, varsayılan 2) — Tüm modaliteler için minimum dolgu boyutu. Son çıktıdaki num_channels, tüm modaliteler arasındaki en yüksek kanal sayısına min_padding_size eklenerek belirlenir.

Perceiver Encoder için çok modlu ön işleme.

Her modalite için girdiler ön işlenir, ardından aynı sayıda kanala sahip olacak şekilde eğitilebilir konum gömme (embedding) ile dolgu (padding) yapılır.

PerceiverProjectionDecoder

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverProjectionDecoder

< >

( config )

Parametreler

Temel projeksiyon çözücü (çapraz dikkat yok).

PerceiverBasicDecoder

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverBasicDecoder

< >

( config: PerceiverConfigoutput_num_channels: intposition_encoding_type: str | None = 'trainable'output_index_dims: int | None = Nonenum_channels: int | None = 128subsampled_index_dims: int | None = Noneqk_channels: int | None = Nonev_channels: int | None = Nonenum_heads: int | None = 1widening_factor: int | None = 1use_query_residual: bool | None = Falseconcat_preprocessed_input: bool | None = Falsefinal_project: bool | None = Trueposition_encoding_only: bool | None = False**position_encoding_kwargs )

Parametreler

  • config ([PerceiverConfig]) — Model yapılandırması.
  • output_num_channels (int, isteğe bağlı) — Çıktıdaki kanal sayısı. Yalnızca final_project True olarak ayarlandığında kullanılacaktır.
  • position_encoding_type (str, isteğe bağlı, varsayılan “trainable”) — Kullanılacak konum kodlaması türü. “trainable”, “fourier” veya “none” olabilir.
  • output_index_dims (int, isteğe bağlı) — Çıktı sorgularının boyut sayısı. ‘position_encoding_type’ == ‘none’ ise yok sayılır.
  • num_channels (int, isteğe bağlı, varsayılan 128) — Çözücü sorgularının kanal sayısı. ‘position_encoding_type’ == ‘none’ ise yok sayılır.
  • qk_channels (int, isteğe bağlı) — Çapraz dikkat katmanında sorguların ve anahtarların kanal sayısı.
  • v_channels (int, isteğe bağlı) — Çapraz dikkat katmanındaki değerlerin kanal sayısı.
  • num_heads (int, isteğe bağlı, varsayılan 1) — Çapraz dikkat katmanındaki dikkat başlarının sayısı.
  • widening_factor (int, isteğe bağlı, varsayılan 1) — Çapraz dikkat katmanının genişletme çarpanı.
  • use_query_residual (bool, isteğe bağlı, varsayılan False) — Cross-attention katmanının çıktısı ile query arasında bir residual bağlantı kullanılıp kullanılmayacağı.
  • concat_preprocessed_input (bool, isteğe bağlı, varsayılan False) — Önişlenmiş girdinin sorguya birleştirilip birleştirilmeyeceğini belirtir.
  • final_project (bool, isteğe bağlı, varsayılan True) — Çapraz dikkat katmanının çıktısını hedef boyuta projekte edip etmeyeceğini belirtir.
  • position_encoding_only (bool, isteğe bağlı, varsayılan False) — Bu sınıfın yalnızca çıktı sorgularını tanımlamak için kullanılıp kullanılmayacağı.

Çapraz dikkat tabanlı çözücü. Bu sınıf, latenslerin anahtar ve değerleri ürettiği bir çapraz dikkat işlemi kullanarak latenslerin son gizli durumlarını çözmek için kullanılabilir.

Bu sınıfın çıktısının şekli, çıktı sorgularının (aynı zamanda decoder sorguları olarak da adlandırılır) nasıl tanımlandığına bağlıdır.

PerceiverClassificationDecoder

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverClassificationDecoder

< >

( config**decoder_kwargs )

Parametreler

Çapraz dikkat tabanlı sınıflandırma çözücü. Logit çıktısı için PerceiverBasicDecoder'in hafif bir sarmalayıcısıdır. Perceiver kodlayıcısının (batch_size, num_latents, d_latents) biçimindeki çıktısını, (batch_size, num_labels) biçiminde bir tensöre dönüştürür. Sorguların biçimi (batch_size, 1, num_labels)'dir.

PerceiverOpticalFlowDecoder

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverOpticalFlowDecoder

< >

( configoutput_image_shapeoutput_num_channels = 2rescale_factor = 100.0**decoder_kwargs )

Çapraz dikkat tabanlı optik akış çözücü.

PerceiverBasicVideoAutoencodingDecoder

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverBasicVideoAutoencodingDecoder

< >

( config: PerceiverConfigoutput_shape: listposition_encoding_type: str**decoder_kwargs )

Parametreler

  • config ([PerceiverConfig]) — Model yapılandırması.
  • output_shape (list[int]) — Kanal boyutunu hariç tutarak, çıktının (batch_size, num_frames, height, width) biçimindeki şekli.
  • position_encoding_type (str) — Kullanılacak konum kodlama türü. “trainable”, “fourier” veya “none” olabilir.

Çapraz-dikkat tabanlı video-oto-kodlama çözücü. Video yeniden şekillendirme mantığına sahip [PerceiverBasicDecoder] sınıfının hafif bir sarmalayıcısıdır.

PerceiverMultimodalDecoder

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverMultimodalDecoder

< >

( config: PerceiverConfigmodalities: dictnum_outputs: intoutput_num_channels: intmin_padding_size: int | None = 2subsampled_index_dims: dict[str, transformers.models.perceiver.modeling_perceiver.PerceiverAbstractDecoder] | None = None**decoder_kwargs )

Parametreler

  • config ([PerceiverConfig]) — Model yapılandırması.
  • modalities (dict[str, PerceiverAbstractDecoder]) — Modalite adını, o modalitenin decoder'ine eşleyen sözlük.
  • num_outputs (int) — Çözücünün çıktı sayısı.
  • output_num_channels (int) — Çıktıdaki kanal sayısı.
  • min_padding_size (int, isteğe bağlı, varsayılan 2) — Tüm modaliteler için minimum dolgu boyutu. Son çıktıdaki num_channels, tüm modaliteler arasındaki en yüksek kanal sayısına min_padding_size eklenerek belirlenir.
  • subsampled_index_dims (dict[str, PerceiverAbstractDecoder], isteğe bağlı) — Modallite adını, o modallitenin decoder sorgusu için kullanılacak alt örneklemli indeks boyutlarına eşleyen sözlük.

Tek modlu çözücüleri birleştirerek çok modlu çözümleme. Oluşturucunun modalities argümanı, modallık adını o modallığın çözücüsüne eşleyen bir sözlüktür. Bu çözücü, o modallık için sorgular oluşturmak üzere kullanılacaktır. Modallığa özgü sorgular, eğitilebilir modallığa özgü parametrelerle doldurulduktan sonra zaman boyutu boyunca birleştirilir.

Ardından, tüm modaliteler arasında paylaşılan bir çapraz dikkat (cross attention) işlemi vardır.

PerceiverProjectionPostprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverProjectionPostprocessor

< >

( in_channels: intout_channels: int )

Parametreler

  • in_channels (int) — Girdideki kanal sayısı.
  • out_channels (int) — Çıktıdaki kanal sayısı.

Perceiver için projeksiyon son işlemi. Çıkan kanal boyutunu daha düşük bir boyuta projekte etmek için kullanılabilir.

PerceiverAudioPostprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverAudioPostprocessor

< >

( config: PerceiverConfigin_channels: intpostproc_type: str = 'patches' )

Parametreler

  • config ([PerceiverConfig]) — Model yapılandırması.
  • in_channels (int) — Girdideki kanal sayısı.
  • postproc_type (str, isteğe bağlı, varsayılan "patches") — Kullanılacak ön işleyici türü. Şu anda yalnızca “patches” desteklenmektedir.

Perceiver için ses sonrası işleme. Çıktıyı ses özelliklerine dönüştürmek için kullanılabilir.

PerceiverClassificationPostprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverClassificationPostprocessor

< >

( config: PerceiverConfigin_channels: int )

Parametreler

  • config ([PerceiverConfig]) — Model yapılandırması.
  • in_channels (int) — Girdideki kanal sayısı.

Perceiver için sınıflandırma son işlemi. Çıktı kodlayıcısının çıktısını sınıflandırma logitlerine dönüştürmek için kullanılabilir.

PerceiverMultimodalPostprocessor

sınıf transformers.models.perceiver.modeling_perceiver.PerceiverMultimodalPostprocessor

< >

( modalities: Mappinginput_is_dict: bool = False )

Parametreler

  • modalities (Mapping[str, PostprocessorType]) — Modallite adını, o modallite için postprocessor sınıfına eşleyen sözlük.
  • input_is_dict (bool, isteğe bağlı, varsayılan False) — True ise, girdinin sözlük yapısında olduğu varsayılır ve çıktılar aynı sözlük biçimini korur. False ise, girdi bir tensördür ve modality_sizes tarafından işlemden sonra dilimlenir.

Perceiver için çok modlu son işlemleme. Modallere özgü son işlemleyicileri tek bir son işlemleyicide birleştirmek için kullanılabilir.

PerceiverModel

sınıf transformers.PerceiverModel

< >

( config: PerceiverConfigdecoder: typing.Optional[ForwardRef('PerceiverAbstractDecoder')] = Noneinput_preprocessor: Callable = Noneoutput_postprocessor: Callable = None )

Parametreler

  • config (PerceiverConfig) — 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.
  • decoder (PerceiverDecoder, opsiyonel) — Gizil temsilleri görev tahminlerine dönüştüren modül.
  • input_preprocessor (PreprocessorType, isteğe bağlı) — Model için ham girdileri tensörlere kodlayan ön işleyici.
  • output_postprocessor (PostprocessorType, isteğe bağlı) — Model çıktılarını nihai tahminlere dönüştüren postprocessor.

Perceiver: Ölçeklenebilir, tamamen dikkat tabanlı bir mimari.

Perceiver'ın, modelin forward'inde interpolate_pos_encoding parametresini True olarak ayarlayarak, üzerinde eğitildiğinden daha yüksek çözünürlüklü görseller üzerinde ince ayar (fine-tune) yapılabileceğini unutmayın. Bu işlem, önceden eğitilmiş konum gömme (position embedding) değerlerini daha yüksek çözünürlüğe göre interpolasyonla uyarlar.

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

< >

( inputs: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonesubsampled_output_points: dict[str, torch.Tensor] | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool = Falsereturn_dict: bool | None = None**kwargs ) → PerceiverModelOutput or tuple(torch.Tensor)

Parametreler

  • inputs (torch.Tensor) — Perceiver'a girdiler. Bunlar her şey olabilir: görüntüler, metin, ses, video vb.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • subsampled_output_points (dict[str, torch.Tensor], isteğe bağlı) — Decoder için sorgu olarak kullanılan tensörlerin sözlüğü. Decoder, bu sorguları modelin latent temsiline eşler. Örneğin, yalnızca belirli görüntü yamalarının çözümlenmesi gibi alt örneklemeli çözümlenme için kullanılı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.
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

PerceiverModelOutput veya tuple(torch.Tensor)

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

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

  • logits (torch.Tensor, şekli (batch_size, num_labels)) — Sınıflandırma (config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — 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 (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 (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.

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

    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.

Örnekler:

>>> from transformers import PerceiverConfig, PerceiverTokenizer, PerceiverImageProcessor, PerceiverModel
>>> from transformers.models.perceiver.modeling_perceiver import (
...     PerceiverTextPreprocessor,
...     PerceiverImagePreprocessor,
...     PerceiverClassificationDecoder,
... )
>>> import torch
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from PIL import Image

>>> # EXAMPLE 1: using the Perceiver to classify texts
>>> # - we define a TextPreprocessor, which can be used to embed tokens
>>> # - we define a ClassificationDecoder, which can be used to decode the
>>> # final hidden states of the latents to classification logits
>>> # using trainable position embeddings
>>> config = PerceiverConfig()
>>> preprocessor = PerceiverTextPreprocessor(config)
>>> decoder = PerceiverClassificationDecoder(
...     config,
...     num_channels=config.d_latents,
...     trainable_position_encoding_kwargs=dict(num_channels=config.d_latents, index_dims=1),
...     use_query_residual=True,
... )
>>> model = PerceiverModel(config, input_preprocessor=preprocessor, decoder=decoder)

>>> # you can then do a forward pass as follows:
>>> tokenizer = PerceiverTokenizer()
>>> text = "hello world"
>>> inputs = tokenizer(text, return_tensors="pt").input_ids

>>> with torch.no_grad():
...     outputs = model(inputs=inputs)
>>> logits = outputs.logits
>>> list(logits.shape)
[1, 2]

>>> # to train, one can train the model using standard cross-entropy:
>>> criterion = torch.nn.CrossEntropyLoss()

>>> labels = torch.tensor([1])
>>> loss = criterion(logits, labels)

>>> # EXAMPLE 2: using the Perceiver to classify images
>>> # - we define an ImagePreprocessor, which can be used to embed images
>>> config = PerceiverConfig(image_size=224)
>>> preprocessor = PerceiverImagePreprocessor(
...     config,
...     prep_type="conv1x1",
...     spatial_downsample=1,
...     out_channels=256,
...     position_encoding_type="trainable",
...     concat_or_add_pos="concat",
...     project_pos_dim=256,
...     trainable_position_encoding_kwargs=dict(
...         num_channels=256,
...         index_dims=config.image_size**2,
...     ),
... )

>>> model = PerceiverModel(
...     config,
...     input_preprocessor=preprocessor,
...     decoder=PerceiverClassificationDecoder(
...         config,
...         num_channels=config.d_latents,
...         trainable_position_encoding_kwargs=dict(num_channels=config.d_latents, index_dims=1),
...         use_query_residual=True,
...     ),
... )

>>> # you can then do a forward pass as follows:
>>> image_processor = PerceiverImageProcessor()
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt").pixel_values

>>> with torch.no_grad():
...     outputs = model(inputs=inputs)
>>> logits = outputs.logits
>>> list(logits.shape)
[1, 2]

>>> # to train, one can train the model using standard cross-entropy:
>>> criterion = torch.nn.CrossEntropyLoss()

>>> labels = torch.tensor([1])
>>> loss = criterion(logits, labels)

PerceiverForMaskedLM

sınıf transformers.PerceiverForMaskedLM

< >

( config: PerceiverConfig )

Parametreler

  • config (PerceiverConfig) — 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.

Perceiver'ın maskeli dil modellemede kullanım örneği.

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

< >

( inputs: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonereturn_dict: bool | None = Noneinput_ids: typing.Optional[torch.Tensor] = None**kwargs ) → PerceiverMaskedLMOutput or tuple(torch.Tensor)

Parametreler

  • inputs (torch.Tensor, isteğe bağlı) — Perceiver'a girdiler. Bunlar her şey olabilir: görüntüler, metin, ses, video vb.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [-100, 0, ..., config.vocab_size] aralığında olmalıdır (bkz. input_ids docstring). Endeksleri -100 olarak ayarlanan jetonlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan jetonlar için hesaplanır.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

Dönüş değeri

PerceiverMaskedLMOutput veya tuple(torch.Tensor)

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

PerceiverForMaskedLM 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) — Maskeli dil modelleme (MLM) kaybı.

  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

  • 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 (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.

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

    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.

Örnekler:

>>> from transformers import AutoTokenizer, PerceiverForMaskedLM
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("deepmind/language-perceiver")
>>> model = PerceiverForMaskedLM.from_pretrained("deepmind/language-perceiver")

>>> # training
>>> text = "This is an incomplete sentence where some words are missing."
>>> inputs = tokenizer(text, padding="max_length", return_tensors="pt")
>>> # mask " missing."
>>> inputs["input_ids"][0, 52:61] = tokenizer.mask_token_id
>>> labels = tokenizer(text, padding="max_length", return_tensors="pt").input_ids

>>> outputs = model(**inputs, labels=labels)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
19.87

>>> logits = outputs.logits
>>> list(logits.shape)
[1, 2048, 262]

>>> # inference
>>> text = "This is an incomplete sentence where some words are missing."
>>> encoding = tokenizer(text, padding="max_length", return_tensors="pt")

>>> # mask bytes corresponding to " missing.". Note that the model performs much better if the masked span starts with a space.
>>> encoding["input_ids"][0, 52:61] = tokenizer.mask_token_id

>>> # forward pass
>>> with torch.no_grad():
...     outputs = model(**encoding)
>>> logits = outputs.logits
>>> list(logits.shape)
[1, 2048, 262]

>>> masked_tokens_predictions = logits[0, 52:61].argmax(dim=-1).tolist()
>>> tokenizer.decode(masked_tokens_predictions)
' missing.'

PerceiverForSequenceClassification

sınıf transformers.PerceiverForSequenceClassification

< >

( config: PerceiverConfig )

Parametreler

  • config (PerceiverConfig) — 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.

Perceiver'ın metin sınıflandırma için örnek kullanımı.

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

< >

( inputs: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonereturn_dict: bool | None = Noneinput_ids: typing.Optional[torch.Tensor] = None**kwargs ) → PerceiverClassifierOutput or tuple(torch.Tensor)

Parametreler

  • inputs (torch.Tensor, isteğe bağlı) — Perceiver'a girdiler. Bunlar her şey olabilir: görüntüler, metin, ses, video vb.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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.
  • labels (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Sınıflandırma/geri dönüş 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üş kaybı (Ortalama Kare kaybı) hesaplanır, config.num_labels > 1 ise bir sınıflandırma kaybı (Cross-Entropy) hesaplanır.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

Dönüş değeri

PerceiverClassifierOutput veya tuple(torch.Tensor)

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

PerceiverForSequenceClassification 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 (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 (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.

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

    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.

Örnekler:

>>> from transformers import AutoTokenizer, PerceiverForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("deepmind/language-perceiver")
>>> model = PerceiverForSequenceClassification.from_pretrained("deepmind/language-perceiver")

>>> text = "hello world"
>>> inputs = tokenizer(text, return_tensors="pt").input_ids
>>> outputs = model(inputs=inputs)
>>> logits = outputs.logits
>>> list(logits.shape)
[1, 2]

PerceiverForImageClassificationLearned

sınıf transformers.PerceiverForImageClassificationLearned

< >

( config: PerceiverConfig )

Parametreler

  • config (PerceiverConfig) — 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.

ImageNet gibi görevler için görüntü sınıflandırmada Perceiver'ın örnek kullanımı.

Bu model, öğrenilmiş konum gömme (position embedding) kullanır. Başka bir deyişle, bu modele görüntülerin yapısıyla ilgili herhangi bir ayrıcalıklı bilgi verilmez. Makalede gösterildiği üzere, bu model ImageNet üzerinde %72,7'lik bir top-1 doğruluğa ulaşabilir.

PerceiverForImageClassificationLearned, girdi görsellerini ön işlemek için PerceiverImagePreprocessor'ı (prep_type="conv1x1" ile) ve PerceiverModel'ün gizil temsilini sınıflandırma logitlerine dönüştürmek için PerceiverClassificationDecoder'ü kullanır.

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

< >

( inputs: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool = Falsereturn_dict: bool | None = Nonepixel_values: typing.Optional[torch.Tensor] = None**kwargs ) → PerceiverClassifierOutput or tuple(torch.Tensor)

Parametreler

  • inputs (torch.Tensor, isteğe bağlı) — Perceiver'a girdiler. Bunlar her şey olabilir: görüntüler, metin, ses, video vb.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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.
  • 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.
  • interpolate_pos_encoding (bool, isteğe bağlı, varsayılan False) — Önceden eğitilmiş konum kodlamalarının interpolasyonunun yapılıp yapılmayacağı.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
  • 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 PerceiverImageProcessor kullanılarak elde edilebilir. Ayrıntılar için PerceiverImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için PerceiverImageProcessor kullanır).

Dönüş değeri

PerceiverClassifierOutput veya tuple(torch.Tensor)

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

PerceiverForImageClassificationLearned 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 (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 (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.

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

    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.

Örnekler:

>>> from transformers import AutoImageProcessor, PerceiverForImageClassificationLearned
>>> 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("deepmind/vision-perceiver-learned")
>>> model = PerceiverForImageClassificationLearned.from_pretrained("deepmind/vision-perceiver-learned")

>>> inputs = image_processor(images=image, return_tensors="pt").pixel_values
>>> outputs = model(inputs=inputs)
>>> logits = outputs.logits
>>> list(logits.shape)
[1, 1000]

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_class_idx = logits.argmax(-1).item()
>>> print("Predicted class:", model.config.id2label[predicted_class_idx])
Predicted class: tabby, tabby cat

PerceiverForImageClassificationFourier

sınıf transformers.PerceiverForImageClassificationFourier

< >

( config: PerceiverConfig )

Parametreler

  • config (PerceiverConfig) — 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.

ImageNet gibi görevler için görüntü sınıflandırmada Perceiver'ın örnek kullanımı.

Bu model, sabit 2D Fourier konum gömme (embedding) kullanır. Makalede gösterildiği üzere bu model, ImageNet üzerinde %79,0 ilk-1 (top-1) doğruluğa ulaşabilir ve büyük ölçekli bir veri setinde (ör. JFT) ön eğitildiğinde bu değer %84,5'e yükselir.

PerceiverForImageClassificationLearned, girdi görüntülerini ön işlemek için PerceiverImagePreprocessor (ve prep_type="pixels") kullanır ve PerceiverModel'ün gizil temsilini sınıflandırma logitlerine dönüştürmek için PerceiverClassificationDecoder kullanır.

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

< >

( inputs: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonereturn_dict: bool | None = Nonepixel_values: typing.Optional[torch.Tensor] = None**kwargs ) → PerceiverClassifierOutput or tuple(torch.Tensor)

Parametreler

  • inputs (torch.Tensor, isteğe bağlı) — Perceiver'a girdiler. Bunlar her şey olabilir: görüntüler, metin, ses, video vb.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

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

Dönüş değeri

PerceiverClassifierOutput veya tuple(torch.Tensor)

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

PerceiverForImageClassificationFourier 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 (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 (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.

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

    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.

Örnekler:

>>> from transformers import AutoImageProcessor, PerceiverForImageClassificationFourier
>>> 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("deepmind/vision-perceiver-fourier")
>>> model = PerceiverForImageClassificationFourier.from_pretrained("deepmind/vision-perceiver-fourier")

>>> inputs = image_processor(images=image, return_tensors="pt").pixel_values
>>> outputs = model(inputs=inputs)
>>> logits = outputs.logits
>>> list(logits.shape)
[1, 1000]

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_class_idx = logits.argmax(-1).item()
>>> print("Predicted class:", model.config.id2label[predicted_class_idx])
Predicted class: tabby, tabby cat

PerceiverForImageClassificationConvProcessing

sınıf transformers.PerceiverForImageClassificationConvProcessing

< >

( config: PerceiverConfig )

Parametreler

  • config (PerceiverConfig) — 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.

ImageNet gibi görevler için görüntü sınıflandırmada Perceiver'ın örnek kullanımı.

Bu model, 2B conv+maxpool ön işleme ağı kullanır. Makalede gösterildiği üzere, bu model ImageNet üzerinde %82,1'lik bir top-1 doğruluğa ulaşabilir.

PerceiverForImageClassificationLearned, girdi görüntülerini ön işlemek için PerceiverImagePreprocessor (parametresi prep_type="conv" ile) ve PerceiverModel'ün gizil temsilini sınıflandırma logitlerine dönüştürmek için PerceiverClassificationDecoder kullanır.

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

< >

( inputs: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonereturn_dict: bool | None = Nonepixel_values: typing.Optional[torch.Tensor] = None**kwargs ) → PerceiverClassifierOutput or tuple(torch.Tensor)

Parametreler

  • inputs (torch.Tensor, isteğe bağlı) — Perceiver'a girdiler. Bunlar her şey olabilir: görüntüler, metin, ses, video vb.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

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

Dönüş değeri

PerceiverClassifierOutput veya tuple(torch.Tensor)

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

PerceiverForImageClassificationConvProcessing 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 (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 (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.

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

    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.

Örnekler:

>>> from transformers import AutoImageProcessor, PerceiverForImageClassificationConvProcessing
>>> 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("deepmind/vision-perceiver-conv")
>>> model = PerceiverForImageClassificationConvProcessing.from_pretrained("deepmind/vision-perceiver-conv")

>>> inputs = image_processor(images=image, return_tensors="pt").pixel_values
>>> outputs = model(inputs=inputs)
>>> logits = outputs.logits
>>> list(logits.shape)
[1, 1000]

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_class_idx = logits.argmax(-1).item()
>>> print("Predicted class:", model.config.id2label[predicted_class_idx])
Predicted class: tabby, tabby cat

PerceiverForOpticalFlow

sınıf transformers.PerceiverForOpticalFlow

< >

( config: PerceiverConfig )

Parametreler

  • config (PerceiverConfig) — 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.

Optical flow için Perceiver'ın Sintel ve KITTI gibi görevlerdeki örnek kullanımı. PerceiverForOpticalFlow, girdi görüntülerini ön işlemek için PerceiverImagePreprocessor'ı (prep_type=“patches” ile) ve PerceiverModel'ün gizil temsilini çözmek için PerceiverOpticalFlowDecoder'ü kullanır.

Girdi olarak, kanal boyutu boyunca ardışık 2 kare birleştirilir ve her pikselin etrafında 3 x 3'lük bir yama (patch) çıkarılır (her piksel için 3 x 3 x 3 x 2 = 54 değere yol açar). Yama içindeki her pikselin konumunu kodlamak için sabit Fourier konum kodlamaları kullanılır. Ardından, Perceiver kodlayıcı uygulanır. Çözmek için, girdi için kullanılan aynı kodlama kullanılarak gizil (latent) temsil sorgulanır.

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

< >

( inputs: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonereturn_dict: bool | None = None**kwargs ) → PerceiverClassifierOutput or tuple(torch.Tensor)

Parametreler

  • inputs (torch.Tensor, isteğe bağlı) — Perceiver'a girdiler. Bunlar her şey olabilir: görüntüler, metin, ses, video vb.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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.
  • labels (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Optik akış kaybını hesaplamak için etiketler. İndisler [0, ..., config.num_labels - 1] aralığında olmalıdır.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

PerceiverClassifierOutput veya tuple(torch.Tensor)

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

PerceiverForOpticalFlow 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 (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 (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.

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

    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.

Örnekler:

>>> from transformers import PerceiverForOpticalFlow
>>> import torch

>>> model = PerceiverForOpticalFlow.from_pretrained("deepmind/optical-flow-perceiver")

>>> # in the Perceiver IO paper, the authors extract a 3 x 3 patch around each pixel,
>>> # leading to 3 x 3 x 3 = 27 values for each pixel (as each pixel also has 3 color channels)
>>> # patches have shape (batch_size, num_frames, num_channels, height, width)
>>> # the authors train on resolutions of 368 x 496
>>> patches = torch.randn(1, 2, 27, 368, 496)
>>> outputs = model(inputs=patches)
>>> logits = outputs.logits
>>> list(logits.shape)
[1, 368, 496, 2]

PerceiverForMultimodalAutoencoding

sınıf transformers.PerceiverForMultimodalAutoencoding

< >

( config: PerceiverConfig )

Parametreler

  • config (PerceiverConfig) — 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.

Kinetics-700 gibi görevler için çok modlu (video) oto-kodlama amacıyla Perceiver'ın örnek kullanımı.

PerceiverForMultimodalAutoencoding, görüntü, ses ve sınıf etiketleri olmak üzere 3 modaliteyi ön işlemek için PerceiverMultimodalPreprocessor kullanır. Bu ön işleyici, her bir modaliteyi ayrı ayrı ön işlemek için modaliteye özgü ön işleyiciler kullanır; ardından bunlar birleştirilir. Zaman boyutu boyunca birleştirme yapılabilmesi için her modalite, aynı sayıda kanala tamamlanmak üzere eğitilebilir konum gömme (embedding) kullanılır. Ardından Perceiver kodlayıcı uygulanır.

PerceiverMultimodalDecoder, PerceiverModel'in gizil (latent) temsiline ait kodu çözmek için kullanılır. Bu decoder, sorguları oluşturmak için her modalliteye özgü decoder'ı kullanır. Decoder sorguları, ön işlemden geçirilen girdilere dayanarak oluşturulur. Ancak, tüm bir videoyu tek bir ileri geçişte (forward pass) oto-kodlamak (autoencode) hesapsal olarak uygulanabilir değildir; bu nedenle, gizil temsil ile çapraz dikkat (cross-attention) yapmak için yalnızca decoder sorgularının bir kısmı kullanılır. Bu, her modallite için alt örneklenmiş (subsampled) indekslerle belirlenir ve bu indeksler, PerceiverForMultimodalAutoencoding'in ileri geçişine ek girdi olarak sağlanabilir.

PerceiverMultimodalDecoder, zaman boyutu boyunca birleştirilebilmeleri için farklı modalitelerin decoder sorgularını aynı kanal sayısına kadar doldurur. Ardından, PerceiverModel'in latent temsiliyle çapraz dikkat (cross-attention) işlemi gerçekleştirilir.

Son olarak, bu tensörü gerçek bir videoya dönüştürmek için ~models.perceiver.modeling_perceiver.PerceiverMultiModalPostprocessor kullanılır. Önce çıktıyı farklı modalitelere ayırır, ardından her bir modalite için ilgili son işlemciyi uygular.

Değerlendirme sırasında sınıflandırma etiketinin maskelenmesi (yani “label” modalitesi için sıfırlardan oluşan bir tensör sağlanması) durumunda, bu oto-kodlama modelinin bir Kinetics 700 video sınıflandırıcısına dönüştüğünü unutmayın.

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

< >

( inputs: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonesubsampled_output_points: dict[str, torch.Tensor] | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonereturn_dict: bool | None = None**kwargs ) → PerceiverClassifierOutput or tuple(torch.Tensor)

Parametreler

  • inputs (torch.Tensor, isteğe bağlı) — Perceiver'a girdiler. Bunlar her şey olabilir: görüntüler, metin, ses, video vb.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • subsampled_output_points (dict[str, torch.Tensor], isteğe bağlı) — Decoder için sorgu olarak kullanılan tensörlerin sözlüğü. Decoder, bu sorguları modelin latent temsiline eşler. Örneğin, yalnızca belirli görüntü yamalarının çözümlenmesi gibi alt örneklemeli çözümlenme için kullanılı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.
  • 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.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

PerceiverClassifierOutput veya tuple(torch.Tensor)

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

PerceiverForMultimodalAutoencoding 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 (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 (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.

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

    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.

Örnekler:

>>> from transformers import PerceiverForMultimodalAutoencoding
>>> import torch
>>> import numpy as np

>>> # create multimodal inputs
>>> images = torch.randn((1, 16, 3, 224, 224))
>>> audio = torch.randn((1, 30720, 1))
>>> inputs = dict(image=images, audio=audio, label=torch.zeros((images.shape[0], 700)))

>>> model = PerceiverForMultimodalAutoencoding.from_pretrained("deepmind/multimodal-perceiver")

>>> # in the Perceiver IO paper, videos are auto-encoded in chunks
>>> # each chunk subsamples different index dimensions of the image and audio modality decoder queries
>>> nchunks = 128
>>> image_chunk_size = np.prod((16, 224, 224)) // nchunks
>>> audio_chunk_size = audio.shape[1] // model.config.samples_per_patch // nchunks
>>> # process the first chunk
>>> chunk_idx = 0
>>> subsampling = {
...     "image": torch.arange(image_chunk_size * chunk_idx, image_chunk_size * (chunk_idx + 1)),
...     "audio": torch.arange(audio_chunk_size * chunk_idx, audio_chunk_size * (chunk_idx + 1)),
...     "label": None,
... }

>>> outputs = model(inputs=inputs, subsampled_output_points=subsampling)
>>> logits = outputs.logits
>>> list(logits["audio"].shape)
[1, 240]

>>> list(logits["image"].shape)
[1, 6272, 3]

>>> list(logits["label"].shape)
[1, 700]
Update on GitHub