Transformers documentation
Hiera
이 모델은 2023-06-01에 HF papers에 게시되었으며, 2024-07-12에 Hugging Face Transformers에 기여되었습니다.
Hiera
개요
Hiera는 Chaitanya Ryali, Yuan-Ting Hu, Daniel Bolya, Chen Wei, Haoqi Fan, Po-Yao Huang, Vaibhav Aggarwal, Arkabandhu Chowdhury, Omid Poursaeed, Judy Hoffman, Jitendra Malik, Yanghao Li, Christoph Feichtenhofer가 Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles에서 제안했습니다.
이 논문은 “Hiera”를 소개합니다. Hiera는 정확도나 효율성을 해치지 않으면서도 불필요한 구성 요소를 제거하여 현대적인 계층형 Vision Transformer의 아키텍처를 단순화한 계층형 Vision Transformer입니다. 전통적인 transformer는 지도 분류 성능을 향상시키기 위해 복잡한 비전 전용 구성 요소를 추가하는 반면, Hiera는 이러한 추가 요소(흔히 “bells-and-whistles”라고 불림)가 높은 정확도에 필수적이지 않음을 보여줍니다. 강력한 시각적 pretext task(MAE)를 활용한 사전 학습을 통해 Hiera는 단순성을 유지하면서 다양한 이미지 및 비디오 인식 작업에서 추론과 학습 모두에 걸쳐 우수한 정확도와 속도를 달성합니다. 이 접근법은 비전 작업에 필요한 공간적 편향은 적절한 사전 학습을 통해 효과적으로 학습될 수 있으며, 아키텍처의 추가적인 복잡성이 필요 없음을 시사합니다.
해당 논문의 초록은 다음과 같습니다:
현대 계층형 비전 트랜스포머는 지도 분류 성능을 추구하면서 여러 비전 전용 구성 요소를 추가했습니다. 이러한 구성 요소는 효과적인 정확도와 매력적인 FLOP 수를 제공하지만, 추가된 복잡성으로 인해 실제로는 일반 ViT 대비 더 느려집니다. 본 논문에서는 이러한 추가 부피가 불필요하다고 주장합니다. 강력한 시각 사전 작업(MAE)으로 사전 학습을 수행하면, 최첨단 다단계 비전 트랜스포머에서 모든 부가 기능을 제거하더라도 정확도를 유지할 수 있습니다. 이 과정에서 Hiera를 만들었습니다. Hiera는 매우 단순한 계층형 비전 트랜스포머로, 이전 모델보다 정확도가 높으면서도 추론과 학습 모두에서 훨씬 빠릅니다. Hiera를 이미지 및 비디오 인식의 다양한 작업에서 평가했습니다. 코드와 모델은 https://github.com/facebookresearch/hiera에서 사용할 수 있습니다.
Hiera architecture. Taken from the original paper. 이 모델은 EduardoPacheco와 namangarg110의 공동 기여로 개발되었습니다. 원본 코드는 [여기] (https://github.com/facebookresearch/hiera)에서 확인할 수 있습니다.
리소스
Hiera를 시작하는 데 도움이 되는 공식 Hugging Face 및 커뮤니티(🌎로 표시) 리소스 목록입니다. 여기에 포함할 리소스를 제출하고 싶으시면 Pull Request를 열어 주시면 검토하겠습니다! 기존 리소스와 중복되지 않고 새로운 것을 보여주는 것이 이상적입니다.
- HieraForImageClassification은 이 노트북에서 지원됩니다.
- 참고: 이미지 분류 작업 가이드
HieraConfig
class transformers.HieraConfig
< source >( 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 = Noneembed_dim: int = 96image_size: list[int] | tuple[int, ...] = (224, 224)patch_size: list[int] | tuple[int, ...] = (7, 7)patch_stride: list[int] | tuple[int, ...] = (4, 4)patch_padding: list[int] | tuple[int, ...] = (3, 3)mlp_ratio: float = 4.0depths: list[int] | tuple[int, ...] = (2, 3, 16, 3)num_heads: list[int] | tuple[int, ...] = (1, 2, 4, 8)embed_dim_multiplier: float | int = 2.0num_query_pool: int = 3query_stride: list[int] | tuple[int, ...] = (2, 2)masked_unit_size: list[int] | tuple[int, ...] = (8, 8)masked_unit_attention: list[bool] | tuple[bool, ...] = (True, True, False, False)drop_path_rate: float | int = 0.0num_channels: int = 3hidden_act: str = 'gelu'initializer_range: float = 0.02layer_norm_init: float = 1.0layer_norm_eps: float = 1e-06decoder_hidden_size: int | None = Nonedecoder_depth: int | None = Nonedecoder_num_heads: int | None = Nonenormalize_pixel_loss: bool | None = Truemask_ratio: float = 0.6_out_features: list[str] | None = None_out_indices: list[int] | None = None )
매개변수
- embed_dim (
int, 선택 사항, 기본값96) — 임베딩 및 숨겨진 상태의 차원입니다. - image_size (
Union[list[int], tuple[int, ...]], 선택 사항, 기본값(224, 224)) — 각 이미지의 크기(해상도)입니다. - patch_size (
Union[list[int], tuple[int, ...]], 선택 사항, 기본값(7, 7)) — 각 패치의 크기(해상도)입니다. - patch_stride (
list(int), 선택 사항, 기본값[4, 4]) — 패치의 스트라이드입니다. - patch_padding (
list(int), 선택 사항, 기본값[3, 3]) — 패치의 패딩입니다. - mlp_ratio (
float, 선택 사항, 기본값4.0) — 임베딩 차원에 대한 MLP 숨겨진 차원의 비율입니다. - depths (
Union[list[int], tuple[int, ...]], 선택 사항, 기본값(2, 3, 16, 3)) — Transformer의 각 레이어 깊이. - num_heads (
list(int), 선택 사항, 기본값[1, 2, 4, 8]) — Transformer 인코더의 각 레이어에 있는 어텐션 헤드 수입니다. - embed_dim_multiplier (
float, 선택 사항, 기본값 2.0) — Transformer 인코더의 각 레이어에서 패치 임베딩 차원에 적용할 배율입니다. - num_query_pool (
int, 선택 사항, 기본값 3) — query pool 단계의 수입니다. - query_stride (
list(int), 선택 사항, 기본값[2, 2]) — query pool의 stride입니다. - masked_unit_size (
list(int), 선택 사항, 기본값[8, 8]) — 마스크된 유닛의 크기입니다. - masked_unit_attention (
list(bool), 선택 사항, 기본값[True, True, False, False]) — Transformer 인코더의 각 레이어에서 masked unit attention을 사용할지 여부입니다. - drop_path_rate (
Union[float, int], 선택 사항, 기본값0.0) — 패치 융합에 사용할 드롭 패스 비율입니다. - num_channels (
int, 선택 사항, 기본값3) — 입력 채널의 수입니다. - hidden_act (
str, 선택 사항, 기본값gelu) — 디코더에서 사용되는 비선형 활성화 함수(함수 또는 문자열)입니다. 예를 들어,"gelu","relu","silu"등이 있습니다. - initializer_range (
float, 선택 사항, 기본값0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - layer_norm_init (
float, 선택 사항, 기본값 1.0) — 레이어 정규화 레이어의 초기 가중치 값입니다. - layer_norm_eps (
float, 선택 사항, 기본값1e-06) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다. - decoder_hidden_size (
int, 선택 사항) — 숨겨진 표현의 차원. - decoder_depth (
int, 선택 사항) — MAE 사전 학습을 위한 decoder의 깊이입니다. - decoder_num_heads (
int, 선택 사항) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다. - normalize_pixel_loss (
bool, 선택 사항, 기본값True) — 픽셀 수로 픽셀 손실을 정규화할지 여부. - mask_ratio (
float, 선택 사항, 기본값 0.6) — 입력에서 마스킹된 토큰의 비율입니다.
이것은 HieraModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Hiera 모델을 인스턴스화하여 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 facebook/hiera-base-224와 유사한 구성이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
예:
>>> from transformers import HieraConfig, HieraModel
>>> # Initializing a Hiera hiera-base-patch16-224 style configuration
>>> configuration = HieraConfig()
>>> # Initializing a model (with random weights) from the hiera-base-patch16-224 style configuration
>>> model = HieraModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configHieraModel
class transformers.HieraModel
< source >( config: HieraConfigadd_pooling_layer: bool = Trueis_mae: bool = False )
매개변수
- config (HieraConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
- add_pooling_layer (
bool, 선택 사항, 기본값True) — pooling layer를 적용할지 여부. - is_mae (
bool, 선택 사항, 기본값False) — 모델을 MAE 모드로 실행할지 여부.
…
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( pixel_values: typing.Optional[torch.Tensor] = Nonenoise: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
매개변수
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size), 선택 사항) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 BitImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 BitImageProcessor.call()를 참조하세요 (processor_class는 이미지 처리에 BitImageProcessor를 사용합니다). - noise (
torch.Tensor, shape(batch_size, num_mask_units), 선택 사항) — 주요하게 테스트 목적으로 사용되며, 무작위성을 제어하고 재현성을 유지하는 데 사용됩니다 - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - interpolate_pos_encoding (
bool, 선택 사항) — 사전 학습된 위치 인코딩을 보간할지 여부. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.
반환값
BaseModelOutputWithPooling 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 BaseModelOutputWithPooling (return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(HieraConfig)과 입력에 따라 다양한 요소를 포함합니다.
HieraModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.pooler_output (
torch.Tensor, shape(batch_size, hidden_size)) — 보조 사전 학습 작업을 위해 사용되는 레이어들을 통해 추가 처리된 시퀀스의 첫 번째 토큰(분류 토큰)의 마지막 레이어 hidden-state입니다. 예를 들어 BERT 계열 모델의 경우, 선형 레이어와 tanh 활성화 함수를 통해 처리된 후의 분류 토큰을 반환합니다. 선형 레이어의 가중치는 사전 학습 동안 다음 문장 예측(분류) 목적 함수를 통해 학습됩니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
HieraForPreTraining
class transformers.HieraForPreTraining
< source >( config: HieraConfig )
매개변수
- config (HieraConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
self-supervised pre-training을 위해 상단에 decoder가 있는 Hiera Model transformer.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( pixel_values: typing.Optional[torch.Tensor] = Nonenoise: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → HieraForPreTrainingOutput or tuple(torch.Tensor)
매개변수
- pixel_values (
torch.Tensor, shape(batch_size, num_channels, image_size, image_size), 선택 사항) — 입력 이미지에 해당하는 텐서입니다. 픽셀 값은 BitImageProcessor를 사용하여 얻을 수 있습니다. 자세한 내용은 BitImageProcessor.call()를 참조하세요 (processor_class는 이미지 처리에 BitImageProcessor를 사용합니다). - noise (
torch.Tensor, shape(batch_size, num_mask_units), 선택 사항) — 주요하게 테스트 목적으로 사용되며, 무작위성을 제어하고 재현성을 유지하는 데 사용됩니다 - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - interpolate_pos_encoding (
bool, 선택 사항) — 사전 학습된 위치 인코딩을 보간할지 여부. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.
반환값
HieraForPreTrainingOutput 또는 tuple(torch.Tensor)
HieraForPreTrainingOutput 또는 torch.Tensor의 튜플(return_dict=False이 전달되거나 config.return_dict=False인 경우)로, 구성(HieraConfig)과 입력에 따라 다양한 요소를 포함합니다.
HieraForPreTraining의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,)) — 픽셀 재구성 손실.logits (
torch.Tensor, shape(batch_size, sequence_length, patch_size ** 2 * num_channels)) — 픽셀 재구성 logits.bool_masked_pos (
torch.BoolTensor, shape(batch_size, sequence_length)) — 어떤 patch가 마스킹된(0) 상태이고 어떤 patch가 마스킹되지 않은(1) 상태인지를 나타내는 Tensor입니다.ids_restore (
torch.LongTensor, shape(batch_size, sequence_length)) — (셔플된) 마스킹된 패치의 원래 인덱스를 포함하는 텐서.hidden_states (
tuple[torch.Tensor], 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple[torch.Tensor], 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
reshaped_hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 레이어 출력 1개)로, shape가(batch_size, height, width, hidden_size)입니다. 각 레이어 출력에서의 모델 hidden-states와 공간 차원을 포함하도록 리셰이프된 초기 임베딩 출력을 포함합니다.
예:
>>> from transformers import AutoImageProcessor, HieraForPreTraining
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-tiny-224-mae-hf")
>>> model = HieraForPreTraining.from_pretrained("facebook/hiera-tiny-224-mae-hf")
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> logits = outputs.logits
>>> loss = outputs.loss
>>> print(list(logits.shape))
[1, 196, 768]HieraForImageClassification
class transformers.HieraForImageClassification
< source >( config: HieraConfig )
매개변수
- config (HieraConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
Hiera 모델은 최종 hidden state 위에 average pooling을 적용한 선형 레이어로 구성된 이미지 분류 헤드를 포함하며, 예를 들어 ImageNet에 사용됩니다.
모델의 forward에서
interpolate_pos_encoding을True로 설정하면, 학습에 사용된 해상도보다 높은 해상도의 이미지로 Hiera를 fine-tune할 수 있습니다. 이렇게 하면 사전 학습된 position embeddings이 더 높은 해상도에 맞게 보간됩니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( pixel_valueslabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → HieraForImageClassificationOutput or tuple(torch.Tensor)
매개변수
- pixel_values (`
of shape(batch_size, num_channels, image_size, image_size)) -- The tensors corresponding to the input images. Pixel values can be obtained using [BitImageProcessor](/docs/transformers/main/en/model_doc/bit#transformers.BitImageProcessor). See [BitImageProcessor.__call__()](/docs/transformers/main/en/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) for details (processor_class` uses BitImageProcessor for processing images). - labels (
torch.LongTensor, shape(batch_size,), 선택 사항) — 이미지 분류/회귀 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는[0, ..., config.num_labels - 1]범위에 있어야 합니다.config.num_labels == 1인 경우 회귀 손실(평균 제곱 오차)이 계산되고,config.num_labels > 1인 경우 분류 손실(교차 엔트로피)이 계산됩니다. - output_attentions (
bool, 선택 사항) — 모든 attention 레이어의 attentions 텐서를 반환할지 여부. 자세한 내용은 반환 텐서 섹션의attentions항목을 참조하세요. - output_hidden_states (
bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요. - interpolate_pos_encoding (
bool, 선택 사항) — 사전 학습된 위치 인코딩을 보간할지 여부. - return_dict (
bool, 선택) — 일반 튜플 대신 ModelOutput를 반환할지 여부.
반환값
HieraForImageClassificationOutput 또는 tuple(torch.Tensor)
HieraForImageClassificationOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(HieraConfig)과 입력에 따라 다양한 요소를 포함합니다.
HieraForImageClassification의 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 가중치.
reshaped_hidden_states (
tuple(torch.Tensor),optional) —torch.Tensor의 튜플(임베딩 출력 1개 + 각 스테이지 출력 1개)로, shape은(batch_size, height, width, hidden_size)입니다. 이는 모델의 리셰이핑 및 리롤링된 히든 스테이트입니다.각 레이어의 출력에서 모델의 Hidden-states와 공간 차원을 포함하도록 재구성된 초기 임베딩 출력을 더한 값.
예:
>>> from transformers import AutoImageProcessor, HieraForImageClassification
>>> import torch
>>> from datasets import load_dataset
>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-base-224")
>>> model = HieraForImageClassification.from_pretrained("facebook/hiera-base-224")
>>> 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])
...