Transformers documentation

TimmWrapper

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: dict[str, typing.Any]architecture: 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 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