Transformers documentation

TimmWrapper

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

and get access to the augmented documentation experience

to get started

TimmWrapper

Genel Bakış

Transformers kütüphanesi ve otomatik sınıfları (autoclasses) ile kullanılmak üzere timm modellerinin yüklenmesini sağlayan yardımcı sınıf.

from urllib.request import urlopen

import torch
from PIL import Image

from transformers import AutoImageProcessor, AutoModelForImageClassification


# Load image
image = Image.open(urlopen(
    'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))

# Load model and image processor
checkpoint = "timm/resnet50.a1_in1k"
image_processor = AutoImageProcessor.from_pretrained(checkpoint)
model = AutoModelForImageClassification.from_pretrained(checkpoint).eval( device_map="auto")

# Preprocess image
inputs = image_processor(image)

# Forward pass
with torch.no_grad():
    logits = model(**inputs).logits

# Get top 5 predictions
top5_probabilities, top5_class_indices = torch.topk(logits.softmax(dim=1) * 100, k=5)

Kaynaklar

TimmWrapper ile başlamanıza yardımcı olmak için resmi Hugging Face ve topluluk (🌎 ile belirtilen) kaynaklarının listesi.

Image Classification

Daha ayrıntılı bir genel bakış için lütfen timm entegrasyonu hakkındaki resmî blog yazısını okuyun.

TimmWrapperConfig

sınıf transformers.TimmWrapperConfig

< >

( 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 = Nonearchitecture: str = 'resnet50'initializer_range: float = 0.02do_pooling: bool = Truemodel_args: dict[str, typing.Any] | None = None )

Parametreler

  • architecture (str, isteğe bağlı, varsayılan "resnet50") — Yüklenmesi gereken timm mimarisi.
  • 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ı.
  • do_pooling (bool, isteğe bağlı, varsayılan True) — TimmWrapperModel içindeki last_hidden_state için havuzlama (pooling) yapılıp yapılmayacağı.
  • model_args (dict[str, Any], isteğe bağlı) — timm.create_model fonksiyonuna iletilecek ek anahtar kelime argümanları. Örneğin, timm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1k için 3 blokluk bir model oluşturmak üzere model_args={"depth": 3} kullanılır. Varsayılan değeri None'dir.

Bu, bir TimmWrapperModel'in yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Timm Wrapper modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, resnet50 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 TimmWrapperModel

>>> # Initializing a timm model
>>> model = TimmWrapperModel.from_pretrained("timm/resnet18.a1_in1k")

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

TimmWrapperImageProcessor

sınıf transformers.TimmWrapperImageProcessor

< >

( pretrained_cfg: dictarchitecture: str | None = None**kwargs )

Parametreler

  • pretrained_cfg (dict[str, Any]) — Değerlendirme ve eğitim dönüşümlerini çözmek için kullanılan önceden eğitilmiş modelin yapılandırması.
  • architecture (Optional[str], isteğe bağlı) — Modelin mimarisi adı.

transformers içinde kullanılacak timm modelleri için sarmalayıcı sınıf.

ö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']]return_tensors: str | transformers.utils.generic.TensorType | None = 'pt' )

Parametreler

  • images (ImageInput) — Ön işleme tabi tutulacak görüntü. Tek bir görüntü veya görüntü bir partisi beklenir
  • return_tensors (str veya TensorType, isteğe bağlı) — Döndürülecek tensörlerin türü.

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

TimmWrapperModel

sınıf transformers.TimmWrapperModel

< >

( config: TimmWrapperConfig )

transformers içinde kullanılacak timm modelleri için sarmalayıcı sınıf.

forward

< >

( pixel_values: Tensoroutput_attentions: bool | None = Noneoutput_hidden_states: bool | list[int] | None = Nonereturn_dict: bool | None = Nonedo_pooling: bool | None = Noneuse_cache: bool | None = None**kwargs ) → TimmWrapperModelOutput or tuple(torch.Tensor)

Parametreler

  • pixel_values (torch.Tensor of shape (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri TimmWrapperImageProcessor kullanılarak elde edilebilir. Ayrıntılar için TimmWrapperImageProcessor.call() bölümüne bakın (processor_class, görüntüleri işlemek için TimmWrapperImageProcessor kullanır).
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. timm sarmalı modellerle uyumlu değildir.
  • 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. timm sarmalanmış modellerle uyumlu değildir.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?
  • do_pooling (bool, isteğe bağlı) — TimmWrapperModel içindeki last_hidden_state için pooling yapılıp yapılmayacağı. None geçirilirse, config'teki do_pooling değeri kullanılır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).

Dönüş değeri

TimmWrapperModelOutput veya tuple(torch.Tensor)

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

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

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

  • last_hidden_state (torch.Tensor) — Sınıflandırma başlığı uygulanmadan önce modelin son gizli durumu.
  • pooler_output (torch.Tensor, isteğe bağlı) — Uygulanabilirse, son gizli durumdan türetilmiş havuzlanmış çıktı.
  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True ayarlandığında veya config.output_hidden_states=True ise döndürülür) — Modelin her katman veya belirtilen katmanların çıktısındaki ara gizli durumlarını içeren bir demet.
  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True ayarlandığında veya config.output_attentions=True ise döndürülür.) — Modelin her katmanının çıktısındaki ara dikkat ağırlıklarını içeren bir demet. Not: Şu anda Timm modelleri attentions çıktısını desteklememektedir.

Örnekler:

>>> import torch
>>> from PIL import Image
>>> from urllib.request import urlopen
>>> from transformers import AutoModel, AutoImageProcessor

>>> # Load image
>>> image = Image.open(urlopen(
...     'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
... ))

>>> # Load model and image processor
>>> checkpoint = "timm/resnet50.a1_in1k"
>>> image_processor = AutoImageProcessor.from_pretrained(checkpoint)
>>> model = AutoModel.from_pretrained(checkpoint).eval()

>>> # Preprocess image
>>> inputs = image_processor(image)

>>> # Forward pass
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> # Get pooled output
>>> pooled_output = outputs.pooler_output

>>> # Get last hidden state
>>> last_hidden_state = outputs.last_hidden_state

TimmWrapperForImageClassification

sınıf transformers.TimmWrapperForImageClassification

< >

( config: TimmWrapperConfig )

Görsel sınıflandırma için transformers'ta kullanılacak timm modelleri için sarmalayıcı sınıf.

forward

< >

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

Parametreler

  • pixel_values (torch.Tensor of shape (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri TimmWrapperImageProcessor kullanılarak elde edilebilir. Ayrıntılar için TimmWrapperImageProcessor.call() bölümüne bakın (processor_class, görüntüleri işlemek için TimmWrapperImageProcessor kullanır).
  • labels (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Görüntü sınıflandırma/geri dönüşüm kaybını hesaplamak için etiketler. Endeksler [0, ..., config.num_labels - 1] aralığında olmalıdır. config.num_labels == 1 ise bir geri dönüşüm kaybı (Ortalama Kare kaybı) hesaplanır, config.num_labels > 1 ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. timm sarmalı modellerle uyumlu değildir.
  • 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. timm sarmalanmış modellerle uyumlu değildir.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi. **kwargs: timm modelinin forward'ine aktarılan ek anahtar kelime argümanları.

Dönüş değeri

ImageClassifierOutput veya tuple(torch.Tensor)

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

TimmWrapperForImageClassification sınıfının forward metodu, __call__ özel metodunu geçersiz kılar.

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

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.

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

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her aşamanın çıktısı için birer tane) içeren bir tuple, şekli (batch_size, sequence_length, hidden_size). Modelin her aşamanın çıktısındaki gizli durumları (aynı zamanda özellik haritaları olarak da adlandırılır).

  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, patch_size, sequence_length).

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

Örnekler:

>>> import torch
>>> from PIL import Image
>>> from urllib.request import urlopen
>>> from transformers import AutoModelForImageClassification, AutoImageProcessor

>>> # Load image
>>> image = Image.open(urlopen(
...     'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
... ))

>>> # Load model and image processor
>>> checkpoint = "timm/resnet50.a1_in1k"
>>> image_processor = AutoImageProcessor.from_pretrained(checkpoint)
>>> model = AutoModelForImageClassification.from_pretrained(checkpoint).eval()

>>> # Preprocess image
>>> inputs = image_processor(image)

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

>>> # Get top 5 predictions
>>> top5_probabilities, top5_class_indices = torch.topk(logits.softmax(dim=1) * 100, k=5)
Update on GitHub