7.4 KiB
모델 출력model-outputs
모든 모델에는 [~utils.ModelOutput]의 서브클래스의 인스턴스인 모델 출력이 있습니다. 이들은
모델에서 반환되는 모든 정보를 포함하는 데이터 구조이지만 튜플이나 딕셔너리로도 사용할 수 있습니다.
예제를 통해 살펴보겠습니다:
from transformers import BertTokenizer, BertForSequenceClassification
import torch
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased")
model = BertForSequenceClassification.from_pretrained("google-bert/bert-base-uncased")
inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
labels = torch.tensor([1]).unsqueeze(0) # 배치 크기 1
outputs = model(**inputs, labels=labels)
outputs 객체는 [~modeling_outputs.SequenceClassifierOutput]입니다.
아래 해당 클래스의 문서에서 볼 수 있듯이, loss(선택적), logits, hidden_states(선택적) 및 attentions(선택적) 항목이 있습니다. 여기에서는 labels를 전달했기 때문에 loss가 있지만 hidden_states와 attentions가 없는데, 이는 output_hidden_states=True 또는 output_attentions=True를 전달하지 않았기 때문입니다.
output_hidden_states=True를 전달할 때 outputs.hidden_states[-1]가 outputs.last_hidden_state와 정확히 일치할 것으로 예상할 수 있습니다.
하지만 항상 그런 것은 아닙니다. 일부 모델은 마지막 은닉 상태가 반환될 때 정규화를 적용하거나 다른 후속 프로세스를 적용합니다.
일반적으로 사용할 때와 동일하게 각 속성들에 접근할 수 있으며, 모델이 해당 속성을 반환하지 않은 경우 None이 반환됩니다. 예시에서는 outputs.loss는 모델에서 계산한 손실이고 outputs.attentions는 None입니다.
outputs 객체를 튜플로 간주할 때는 None 값이 없는 속성만 고려합니다.
예시에서는 loss와 logits라는 두 개의 요소가 있습니다. 그러므로,
outputs[:2]
는 (outputs.loss, outputs.logits) 튜플을 반환합니다.
outputs 객체를 딕셔너리로 간주할 때는 None 값이 없는 속성만 고려합니다.
예시에는 loss와 logits라는 두 개의 키가 있습니다.
여기서부터는 두 가지 이상의 모델 유형에서 사용되는 일반 모델 출력을 다룹니다. 구체적인 출력 유형은 해당 모델 페이지에 문서화되어 있습니다.
ModelOutputtransformers.utils.ModelOutput
autodoc utils.ModelOutput - to_tuple
BaseModelOutputtransformers.BaseModelOutput
autodoc modeling_outputs.BaseModelOutput
BaseModelOutputWithPoolingtransformers.modeling_outputs.BaseModelOutputWithPooling
autodoc modeling_outputs.BaseModelOutputWithPooling
BaseModelOutputWithCrossAttentionstransformers.modeling_outputs.BaseModelOutputWithCrossAttentions
autodoc modeling_outputs.BaseModelOutputWithCrossAttentions
BaseModelOutputWithPoolingAndCrossAttentionstransformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions
autodoc modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions
BaseModelOutputWithPasttransformers.modeling_outputs.BaseModelOutputWithPast
autodoc modeling_outputs.BaseModelOutputWithPast
BaseModelOutputWithPastAndCrossAttentionstransformers.modeling_outputs.BaseModelOutputWithPastAndCrossAttentions
autodoc modeling_outputs.BaseModelOutputWithPastAndCrossAttentions
Seq2SeqModelOutputtransformers.modeling_outputs.Seq2SeqModelOutput
autodoc modeling_outputs.Seq2SeqModelOutput
CausalLMOutputtransformers.modeling_outputs.CausalLMOutput
autodoc modeling_outputs.CausalLMOutput
CausalLMOutputWithCrossAttentionstransformers.modeling_outputs.CausalLMOutputWithCrossAttentions
autodoc modeling_outputs.CausalLMOutputWithCrossAttentions
CausalLMOutputWithPasttransformers.modeling_outputs.CausalLMOutputWithPast
autodoc modeling_outputs.CausalLMOutputWithPast
MaskedLMOutputtransformers.modeling_outputs.MaskedLMOutput
autodoc modeling_outputs.MaskedLMOutput
Seq2SeqLMOutputtransformers.modeling_outputs.Seq2SeqLMOutput
autodoc modeling_outputs.Seq2SeqLMOutput
NextSentencePredictorOutputtransformers.modeling_outputs.NextSentencePredictorOutput
autodoc modeling_outputs.NextSentencePredictorOutput
SequenceClassifierOutputtransformers.modeling_outputs.SequenceClassifierOutput
autodoc modeling_outputs.SequenceClassifierOutput
Seq2SeqSequenceClassifierOutputtransformers.modeling_outputs.Seq2SeqSequenceClassifierOutput
autodoc modeling_outputs.Seq2SeqSequenceClassifierOutput
MultipleChoiceModelOutputtransformers.modeling_outputs.MultipleChoiceModelOutput
autodoc modeling_outputs.MultipleChoiceModelOutput
TokenClassifierOutputtransformers.modeling_outputs.TokenClassifierOutput
autodoc modeling_outputs.TokenClassifierOutput
QuestionAnsweringModelOutputtransformers.modeling_outputs.QuestionAnsweringModelOutput
autodoc modeling_outputs.QuestionAnsweringModelOutput
Seq2SeqQuestionAnsweringModelOutputtransformers.modeling_outputs.Seq2SeqQuestionAnsweringModelOutput
autodoc modeling_outputs.Seq2SeqQuestionAnsweringModelOutput
Seq2SeqSpectrogramOutputtransformers.modeling_outputs.Seq2SeqSpectrogramOutput
autodoc modeling_outputs.Seq2SeqSpectrogramOutput
SemanticSegmenterOutputtransformers.modeling_outputs.SemanticSegmenterOutput
autodoc modeling_outputs.SemanticSegmenterOutput
ImageClassifierOutputtransformers.modeling_outputs.ImageClassifierOutput
autodoc modeling_outputs.ImageClassifierOutput
ImageClassifierOutputWithNoAttentiontransformers.modeling_outputs.ImageClassifierOutputWithNoAttention
autodoc modeling_outputs.ImageClassifierOutputWithNoAttention
DepthEstimatorOutputtransformers.modeling_outputs.DepthEstimatorOutput
autodoc modeling_outputs.DepthEstimatorOutput
Wav2Vec2BaseModelOutputtransformers.modeling_outputs.Wav2Vec2BaseModelOutput
autodoc modeling_outputs.Wav2Vec2BaseModelOutput
XVectorOutputtransformers.modeling_outputs.XVectorOutput
autodoc modeling_outputs.XVectorOutput
Seq2SeqTSModelOutputtransformers.modeling_outputs.Seq2SeqTSModelOutput
autodoc modeling_outputs.Seq2SeqTSModelOutput
Seq2SeqTSPredictionOutputtransformers.modeling_outputs.Seq2SeqTSPredictionOutput
autodoc modeling_outputs.Seq2SeqTSPredictionOutput
SampleTSPredictionOutputtransformers.modeling_outputs.SampleTSPredictionOutput
autodoc modeling_outputs.SampleTSPredictionOutput