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

Visão geral

Classe auxiliar para permitir o carregamento de modelos timm para uso com a biblioteca transformers e suas autoclasses.

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)

Recursos

Uma lista de recursos oficiais do Hugging Face e da comunidade (indicados por 🌎) para ajudar você a começar com o TimmWrapper.

Image Classification

Para uma visão mais detalhada, leia o post oficial no blog sobre a integração com o timm.

TimmWrapperConfig

classe 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 )

Parâmetros

  • architecture (str, opcional, padrão "resnet50") — A arquitetura do timm a ser carregada.
  • initializer_range (float, opcional, padrão 0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos.
  • do_pooling (bool, opcional, padrão True) — Indica se deve ou não aplicar pooling ao last_hidden_state em TimmWrapperModel.
  • model_args (dict[str, Any], opcional) — Argumentos de palavra-chave adicionais para passar à função timm.create_model. Por exemplo, model_args={"depth": 3} para timm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1k para criar um modelo com 3 blocos. O valor padrão é None.

Esta é a classe de configuração para armazenar a configuração de um TimmWrapperModel. Ela é usada para instanciar um modelo Timm Wrapper de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do resnet50

Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.

Exemplo:

>>> from transformers import TimmWrapperModel

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

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

TimmWrapperImageProcessor

classe transformers.TimmWrapperImageProcessor

< >

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

Parâmetros

  • pretrained_cfg (dict[str, Any]) — A configuração do modelo pré-treinado usado para resolver as transformações de avaliação e de treinamento.
  • architecture (Optional[str], opcional) — Nome da arquitetura do modelo.

Classe de encapsulamento para modelos timm a serem usados dentro do transformers.

pré-processamento

< >

( 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' )

Parâmetros

  • images (ImageInput) — Imagem a ser pré-processada. Espera uma única imagem ou um lote de imagens
  • return_tensors (str ou TensorType, opcional) — O tipo de tensores a serem retornados.

Pré-processa uma imagem ou um lote de imagens.

TimmWrapperModel

classe transformers.TimmWrapperModel

< >

( config: TimmWrapperConfig )

Classe de wrapper para modelos timm a serem usados em transformers.

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)

Parâmetros

  • pixel_values (torch.Tensor de forma (batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando TimmWrapperImageProcessor. Consulte TimmWrapperImageProcessor.call() para obter detalhes (processor_class usa TimmWrapperImageProcessor para processar as imagens).
  • output_attentions (bool, opcional) — Indica se os tensores de atenção de todas as camadas de atenção devem ser retornados. Não é compatível com modelos embrulhados pelo timm.
  • output_hidden_states (bool, opcional) — Se as camadas ocultas de todas as camadas devem ser retornadas. Não é compatível com modelos embrulhados pelo timm.
  • return_dict (bool, opcional) — Indica se deve retornar um ModelOutput em vez de uma tupla simples.
  • do_pooling (bool, opcional) — Indica se deve ser aplicado pooling ao TimmWrapperModel para o None ou não. Se None for passado, o valor de do_pooling da configuração é utilizado.
  • use_cache (bool, opcional) — Se definido como True, os estados de chave-valor past_key_values são retornados e podem ser usados para acelerar a decodificação (veja past_key_values).

Retorna

TimmWrapperModelOutput ou tuple(torch.Tensor)

Uma TimmWrapperModelOutput ou uma tupla de torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (TimmWrapperConfig) e das entradas.

O método forward do TimmWrapperModel substitui o método especial __call__.

Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de Module em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.

  • last_hidden_state (torch.Tensor) — O último estado oculto do modelo, gerado antes da aplicação da cabeça de classificação.
  • pooler_output (torch.Tensor, opcional) — A saída agregada derivada do último estado oculto, quando aplicável.
  • hidden_states (tuple(torch.Tensor), opcional, retornado se output_hidden_states=True estiver definido ou se config.output_hidden_states=True) — Uma tupla contendo os estados ocultos intermediários do modelo na saída de cada camada ou das camadas especificadas.
  • attentions (tuple(torch.Tensor), opcional, retornado se output_attentions=True estiver definido ou se config.output_attentions=True.) — Uma tupla contendo os pesos de atenção intermediários do modelo na saída de cada camada. Observação: Atualmente, os modelos Timm não suportam a saída de atenções.

Exemplos:

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

classe transformers.TimmWrapperForImageClassification

< >

( config: TimmWrapperConfig )

Classe de wrapper para modelos timm a serem usados em transformers para classificação de imagem.

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)

Parâmetros

  • pixel_values (torch.Tensor de forma (batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando TimmWrapperImageProcessor. Consulte TimmWrapperImageProcessor.call() para obter detalhes (processor_class usa TimmWrapperImageProcessor para processar imagens).
  • labels (torch.LongTensor de forma (batch_size,), opcional) — Rótulos para o cálculo da perda de classificação/regressão de imagem. Os índices devem estar em [0, ..., config.num_labels - 1]. Se config.num_labels == 1, uma perda de regressão é calculada (perda de erro quadrático médio); se config.num_labels > 1, uma perda de classificação é calculada (entropia cruzada).
  • output_attentions (bool, opcional) — Indica se os tensores de atenção de todas as camadas de atenção devem ser retornados. Não é compatível com modelos embrulhados pelo timm.
  • output_hidden_states (bool, opcional) — Se as camadas ocultas de todas as camadas devem ser retornadas. Não é compatível com modelos embrulhados pelo timm.
  • return_dict (bool, opcional) — Indica se deve retornar um ModelOutput em vez de uma tupla simples. **kwargs: Argumentos de palavra-chave adicionais passados ao forward do modelo timm.

Retorna

ImageClassifierOutput ou tuple(torch.Tensor)

Um ImageClassifierOutput ou uma tupla de torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (TimmWrapperConfig) e das entradas.

O método forward da TimmWrapperForImageClassification sobrescreve o método especial __call__.

Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de Module em seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.

  • loss (torch.Tensor de forma (1,), opcional, retornado quando labels é fornecido) — Perda de classificação (ou regressão se config.num_labels==1).

  • logits (torch.Tensor de forma (batch_size, config.num_labels)) — Pontuações de classificação (ou regressão, se config.num_labels==1) (antes do SoftMax).

  • hidden_states (tuple(torch.Tensor), opcional, retornado quando output_hidden_states=True é passado ou quando config.output_hidden_states=True) — Tupla de torch.Tensor (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada estágio) de forma (batch_size, sequence_length, hidden_size). Hidden-states (também chamados de feature maps) do modelo na saída de cada estágio.

  • attentions (tuple(torch.Tensor), opcional, retornado quando output_attentions=True é passado ou quando config.output_attentions=True) — Tupla de torch.Tensor (um para cada camada) com forma (batch_size, num_heads, patch_size, sequence_length).

    Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.

Exemplos:

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