Transformers documentation

Dolanımsal Görüş Dönüşümü (CvT)

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-03-29 tarihinde HF papers'ta yayımlandı ve 2022-05-18 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

Dolanımsal Görüş Dönüşümü (CvT)

Convolutional Vision Transformer (CvT), bilgisayar görüsü görevleri için konvolüsyonel sinir ağlarının (CNN) ve Vision transformer'ların güçlü yönlerini birleştiren bir modeldir. Görüntü transformer mimarisine konvolüsyonel katmanlar ekleyerek, self-attention mekanizmalarının sağladığı global bağlamı korurken görüntülerdeki yerel örüntüleri yakalamasına olanak tanır.

Tüm CvT checkpoint'lerini Microsoft kuruluşu altında bulabilirsiniz.

Bu model anujunj tarafından katkıda bulunmuştur.

Farklı bilgisayarla görme görevlerine CvT uygulamanın daha fazla örneği için sağ kenar çubuğundaki CvT modellerine tıklayın.

Aşağıdaki örnek, bir görüntünün Pipeline veya AutoModel sınıfı ile nasıl sınıflandırıldığını göstermektedir.

Pipeline
AutoModel
from transformers import pipeline


pipeline = pipeline(
    task="image-classification",
    model="microsoft/cvt-13",
    device=0
)
pipeline("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg")

Kaynaklar

Özel veri setlerinde çıkarım ve ince ayar örnekleri için bu ViT defterleri setine başvurun. Bu defterlerdeki ViTFeatureExtractor ve ViTForImageClassification öğelerini AutoImageProcessor ve CvtForImageClassification ile değiştirin.

CvtConfig

sınıf transformers.CvtConfig

< >

( 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_channels: int = 3patch_sizes: list[int] | tuple[int, ...] = (7, 3, 3)patch_stride: list[int] | tuple[int, ...] = (4, 2, 2)patch_padding: list[int] | tuple[int, ...] = (2, 1, 1)embed_dim: list[int] | tuple[int, ...] = (64, 192, 384)num_heads: list[int] | tuple[int, ...] = (1, 3, 6)depth: list[int] | tuple[int, ...] = (1, 2, 10)mlp_ratio: list[float] | tuple[float, ...] = (4.0, 4.0, 4.0)attention_drop_rate: list[float] | tuple[float, ...] = (0.0, 0.0, 0.0)drop_rate: list[float] | tuple[float, ...] = (0.0, 0.0, 0.0)drop_path_rate: list[float] | tuple[float, ...] = (0.0, 0.0, 0.1)qkv_bias: list[bool] | tuple[bool, ...] = (True, True, True)cls_token: list[bool] | tuple[bool, ...] = (False, False, True)qkv_projection_method: list[str] | tuple[str, ...] = ('dw_bn', 'dw_bn', 'dw_bn')kernel_qkv: list[int] | tuple[int, ...] = (3, 3, 3)padding_kv: list[int] | tuple[int, ...] = (1, 1, 1)stride_kv: list[int] | tuple[int, ...] = (2, 2, 2)padding_q: list[int] | tuple[int, ...] = (1, 1, 1)stride_q: list[int] | tuple[int, ...] = (1, 1, 1)initializer_range: float = 0.02layer_norm_eps: float = 1e-12 )

Parametreler

  • num_channels (int, isteğe bağlı, varsayılan 3) — Giriş kanal sayısı.
  • patch_sizes (Union[list[int], tuple[int, ...]], isteğe bağlı, varsayılan (7, 3, 3)) — Modelin her aşamasındaki yama boyutu.
  • patch_stride (list[int], isteğe bağlı, varsayılan [4, 2, 2]) — Her kodlayıcının yama gömme adım boyutu.
  • patch_padding (list[int], isteğe bağlı, varsayılan [2, 1, 1]) — Her kodlayıcının yama gömme (patch embedding) dolgusu boyutu.
  • embed_dim (Union[list[int], tuple[int, ...]], isteğe bağlı, varsayılan (64, 192, 384)) — Gömme ve gizli durumların boyutluluğu.
  • num_heads (Union[list[int], tuple[int, ...]], isteğe bağlı, varsayılan (1, 3, 6)) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • depth (list[int], isteğe bağlı, varsayılan [1, 2, 10]) — Her kodlayıcı bloğundaki katman sayısı.
  • mlp_ratio (Union[list[float], tuple[float, ...]], isteğe bağlı, varsayılan (4.0, 4.0, 4.0)) — MLP gizli boyutunun gömme boyutuna oranı.
  • attention_drop_rate (list[float], isteğe bağlı, varsayılan [0.0, 0.0, 0.0]) — Dikkat olasılıkları için dropout oranı.
  • drop_rate (list[float], isteğe bağlı, varsayılan [0.0, 0.0, 0.0]) — Yama gömme olasılıkları için dropout oranı.
  • drop_path_rate (Union[list[float], tuple[float, ...]], isteğe bağlı, varsayılan (0.0, 0.0, 0.1)) — Patch füzyonu için drop path oranı.
  • qkv_bias (Union[list[bool], tuple[bool, ...]], isteğe bağlı, varsayılan (True, True, True)) — Sorgulara, anahtarlara ve değerlere bir sapma (bias) eklenip eklenmeyeceğini belirtir.
  • cls_token (list[bool], isteğe bağlı, varsayılan [False, False, True]) — Son 3 aşamanın her birinin çıktısına bir sınıflandırma belirteci eklenip eklenmeyeceğini belirtir.
  • qkv_projection_method (list[string], isteğe bağlı, varsayılan [“dw_bn”, “dw_bn”, “dw_bn”]`) — Sorgu, anahtar ve değer için projeksiyon yöntemi. Varsayılan, batch norm ile derinlik içi konvolüsyonlardır. Doğrusal projeksiyon için “avg” kullanın.
  • kernel_qkv (list[int], isteğe bağlı, varsayılan [3, 3, 3]) — Dikkat katmanında sorgu, anahtar ve değer için çekirdek boyutu
  • padding_kv (list[int], isteğe bağlı, varsayılan [1, 1, 1]) — Dikkat katmanında anahtar ve değer için dolgu boyutu
  • stride_kv (list[int], isteğe bağlı, varsayılan [2, 2, 2]) — Dikkat katmanında anahtar ve değer için adım boyutu
  • padding_q (list[int], isteğe bağlı, varsayılan [1, 1, 1]) — Dikkat katmanında sorgu için dolgu boyutu
  • stride_q (list[int], isteğe bağlı, varsayılan [1, 1, 1]) — Dikkat katmanında sorgu için adım boyutu
  • 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.

Bu, bir CvtModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Cvt modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, microsoft/cvt-13 ile benzer bir yapılandırmaya yol açar.

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 CvtConfig, CvtModel

>>> # Initializing a Cvt msft/cvt style configuration
>>> configuration = CvtConfig()

>>> # Initializing a model (with random weights) from the msft/cvt style configuration
>>> model = CvtModel(configuration)

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

CvtModel

sınıf transformers.CvtModel

< >

( config: CvtConfigadd_pooling_layer = True )

Parametreler

  • config (CvtConfig) — 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.
  • add_pooling_layer (bool, isteğe bağlı, varsayılan True) — Bir havuzlama katmanı eklenip eklenmeyeceği

Üzerinde herhangi bir özel head olmadan ham hidden-state'ler üreten çıplak Cvt Model.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

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

Parametreler

  • pixel_values (torch.Tensor, şekli (batch_size, num_channels, image_size, image_size), isteğe bağlı) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri ConvNextImageProcessor kullanılarak elde edilebilir. Ayrıntılar için ConvNextImageProcessor.call() bölümüne bakın (processor_class, görüntüleri işlemek için ConvNextImageProcessor kullanır).
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

BaseModelOutputWithCLSToken veya tuple(torch.Tensor)

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

CvtModel ileri yöntemi, __call__ özel yöntemini geçersiz kılar.

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

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • cls_token_value (torch.Tensor, şekli (batch_size, 1, hidden_size)) — Modelin son katmanının çıktısındaki sınıflandırma belirteci.

  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

CvtForImageClassification

sınıf transformers.CvtForImageClassification

< >

( config: CvtConfig )

Parametreler

  • config (CvtConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde bir görüntü sınıflandırma başlığı bulunan (örneğin ImageNet için) Cvt Model transformer'ı (son gizli durumun [CLS] token'ı üzerine yerleştirilen doğrusal bir katman).

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

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

Parametreler

  • pixel_values (torch.Tensor, şekli (batch_size, num_channels, image_size, image_size), isteğe bağlı) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri ConvNextImageProcessor kullanılarak elde edilebilir. Ayrıntılar için ConvNextImageProcessor.call() bölümüne bakın (processor_class, görüntüleri işlemek için ConvNextImageProcessor kullanır).
  • labels (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Görüntü sınıflandırma/geri dönüşüm kaybını hesaplamak için etiketler. Endeksler [0, ..., config.num_labels - 1] aralığında olmalıdır. config.num_labels == 1 ise bir geri dönüşüm kaybı (Ortalama Kare kaybı) hesaplanır, config.num_labels > 1 ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

ImageClassifierOutputWithNoAttention veya tuple(torch.Tensor)

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

CvtForImageClassification forward metodu, __call__ özel metodunu geçersiz kılar.

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

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

Örnek:

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

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

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/cvt-13")
>>> model = CvtForImageClassification.from_pretrained("microsoft/cvt-13")

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

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

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