Transformers documentation

TimmWrapper

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

TimmWrapper

개요

transformers 라이브러리 및 그 autoclasses와 함께 timm 모델을 로드할 수 있도록 하는 헬퍼 클래스입니다.

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)

리소스

TimmWrapper를 시작하는 데 도움이 되는 공식 Hugging Face 및 커뮤니티(🌎로 표시) 리소스 목록입니다.

Image Classification

timm 통합에 대한 보다 자세한 개요는 공식 블로그 게시물을 참고하세요.

TimmWrapperConfig

클래스 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 )

매개변수

  • architecture (str, 선택 사항, 기본값 "resnet50") — 로드할 timm 아키텍처입니다.
  • initializer_range (float, 선택 사항, 기본값 0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다.
  • do_pooling (bool, 선택 사항, 기본값 True) — TimmWrapperModel의 last_hidden_state에 대해 풀링을 수행할지 여부.
  • model_args (dict[str, Any], 선택) — timm.create_model 함수에 전달할 추가 키워드 인자입니다. 예를 들어 timm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1k의 경우 model_args={"depth": 3}를 사용하여 3개의 블록을 가진 모델을 생성할 수 있습니다. 기본값은 None입니다.

이것은 resnet50

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

예:

>>> from transformers import TimmWrapperModel

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

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

TimmWrapperImageProcessor

클래스 transformers.TimmWrapperImageProcessor

< >

( pretrained_cfg: dict[str, typing.Any]architecture: str | None = None**kwargs )

매개변수

  • pretrained_cfg (dict[str, Any]) — 평가 및 학습 변환을 해석하는 데 사용되는 사전 학습 모델의 구성입니다.
  • architecture (Optional[str], 선택 사항) — 모델의 아키텍처 이름.

transformers 내에서 timm 모델을 사용하기 위한 래퍼 클래스입니다.

preprocess

< >

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

매개변수

  • images (ImageInput) — 전처리할 이미지. 단일 이미지 또는 이미지 배치(batch)를 기대합니다.
  • return_tensors (str 또는 TensorType, 선택 사항) — 반환할 텐서의 유형입니다.

이미지 또는 이미지 배치(batch)를 전처리합니다.

TimmWrapperModel

클래스 transformers.TimmWrapperModel

< >

( config: TimmWrapperConfig )

transformers에서 사용할 timm 모델을 위한 래퍼 클래스

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)

매개변수

  • pixel_values (torch.Tensor, shape (batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 TimmWrapperImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 TimmWrapperImageProcessor.call()를 참조하세요 (processor_class는 이미지 처리에 TimmWrapperImageProcessor를 사용합니다).
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부입니다. timm으로 래핑된 모델과 호환되지 않습니다.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. timm 래핑된 모델과 호환되지 않습니다.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.
  • do_pooling (bool, 선택 사항) — TimmWrapperModel의 last_hidden_state에 pooling을 수행할지 여부입니다. None이 전달되면 config의 do_pooling 값이 사용됩니다.
  • use_cache (bool, 선택 사항) — True로 설정하면 past_key_values 키 값 상태가 반환되며, 디코딩 속도를 높이는 데 사용할 수 있습니다( past_key_values 참조).

반환값

TimmWrapperModelOutput 또는 tuple(torch.Tensor)

TimmWrapperModelOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(TimmWrapperConfig)과 입력에 따라 다양한 요소를 포함합니다.

TimmWrapperModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • last_hidden_state (torch.Tensor) — 분류 헤드를 적용하기 전에 출력되는 모델의 마지막 히든 상태입니다.
  • pooler_output (torch.Tensor, 선택 사항) — 적용 가능한 경우, 마지막 숨겨진 상태(last hidden state)에서 파생된 풀링된 출력입니다.
  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 설정되었거나 config.output_hidden_states=True인 경우 반환됨) — 각 레이어 또는 지정된 레이어의 출력에서 모델의 중간 hidden states를 포함하는 tuple입니다.
  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 설정되었거나 config.output_attentions=True인 경우 반환됨.) — 각 레이어 출력에서 모델의 중간 attention 가중치를 포함하는 tuple입니다. 참고: 현재 Timm 모델은 attentions 출력을 지원하지 않습니다.

예:

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

class transformers.TimmWrapperForImageClassification

< >

( config: TimmWrapperConfig )

이미지 분류를 위해 transformers에서 timm 모델을 사용할 때 사용하는 래퍼 클래스입니다.

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)

매개변수

  • pixel_values (torch.Tensor, shape (batch_size, num_channels, image_size, image_size)) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 TimmWrapperImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 TimmWrapperImageProcessor.call()를 참조하세요 (processor_class는 이미지 처리에 TimmWrapperImageProcessor를 사용합니다).
  • labels (torch.LongTensor, shape (batch_size,), 선택 사항) — 이미지 분류/회귀 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.num_labels - 1] 범위에 있어야 합니다. config.num_labels == 1인 경우 회귀 손실(평균 제곱 오차)이 계산되고, config.num_labels > 1인 경우 분류 손실(교차 엔트로피)이 계산됩니다.
  • output_attentions (bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부입니다. timm으로 래핑된 모델과 호환되지 않습니다.
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. timm 래핑된 모델과 호환되지 않습니다.
  • return_dict (bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부. **kwargs: timm 모델의 forward에 전달되는 추가 키워드 인자.

반환값

ImageClassifierOutput 또는 tuple(torch.Tensor)

torch.Tensor의 튜플 또는 ImageClassifierOutput입니다. return_dict=False가 전달되거나 config.return_dict=False인 경우, 구성(TimmWrapperConfig)과 입력에 따라 다양한 요소를 포함합니다.

TimmWrapperForImageClassification의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — 분류 (또는 config.num_labels==1인 경우 회귀) 손실.

  • logits (torch.Tensor, shape (batch_size, config.num_labels)) — SoftMax 적용 전 분류(또는 config.num_labels==1인 경우 회귀) 점수.

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되었거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩의 출력에 대한 것 1개 + 각 단계의 출력에 대한 것 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다. 각 단계의 출력에서 모델의 히든 스테이트(피처 맵이라고도 함).

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, patch_size, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

예:

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