Files
2025-10-09 16:47:16 +08:00

6.0 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)  # Batch size 1
outputs = model(**inputs, labels=labels)

outputsオブジェクトは[~modeling_outputs.SequenceClassifierOutput]である。 これは、オプションで losslogits、オプションで hidden_states、オプションで attentions 属性を持つことを意味します。 オプションの attentions 属性を持つことを意味する。ここでは、labelsを渡したのでlossがあるが、hidden_statesattentionsはない。 output_hidden_states=Trueoutput_attentions=Trueを渡していないので、hidden_statesattentionsはない。 output_attentions=Trueを渡さなかったからだ。

output_hidden_states=Trueを渡すと、outputs.hidden_states[-1]outputs.last_hidden_states と正確に一致することを期待するかもしれない。 しかし、必ずしもそうなるとは限りません。モデルによっては、最後に隠された状態が返されたときに、正規化やその後の処理を適用するものもあります。

通常と同じように各属性にアクセスできます。その属性がモデルから返されなかった場合は、 は Noneを取得します。ここで、たとえばoutputs.lossはモデルによって計算された損失であり、outputs.attentionsNone

outputsオブジェクトをタプルとして考える場合、None値を持たない属性のみが考慮されます。 たとえば、ここには 2 つの要素、loss、次にlogitsがあります。

outputs[:2]

たとえば、タプル (outputs.loss, Outputs.logits) を返します。

outputsオブジェクトを辞書として考慮する場合、「None」を持たない属性のみが考慮されます。 価値観。たとえば、ここにはlosslogitsという 2 つのキーがあります。

ここでは、複数のモデル タイプで使用される汎用モデルの出力を文書化します。具体的な出力タイプは次のとおりです。 対応するモデルのページに記載されています。

ModelOutput

autodoc utils.ModelOutput - to_tuple

BaseModelOutput

autodoc modeling_outputs.BaseModelOutput

BaseModelOutputWithPooling

autodoc modeling_outputs.BaseModelOutputWithPooling

BaseModelOutputWithCrossAttentions

autodoc modeling_outputs.BaseModelOutputWithCrossAttentions

BaseModelOutputWithPoolingAndCrossAttentions

autodoc modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions

BaseModelOutputWithPast

autodoc modeling_outputs.BaseModelOutputWithPast

BaseModelOutputWithPastAndCrossAttentions

autodoc modeling_outputs.BaseModelOutputWithPastAndCrossAttentions

Seq2SeqModelOutput

autodoc modeling_outputs.Seq2SeqModelOutput

CausalLMOutput

autodoc modeling_outputs.CausalLMOutput

CausalLMOutputWithCrossAttentions

autodoc modeling_outputs.CausalLMOutputWithCrossAttentions

CausalLMOutputWithPast

autodoc modeling_outputs.CausalLMOutputWithPast

MaskedLMOutput

autodoc modeling_outputs.MaskedLMOutput

Seq2SeqLMOutput

autodoc modeling_outputs.Seq2SeqLMOutput

NextSentencePredictorOutput

autodoc modeling_outputs.NextSentencePredictorOutput

SequenceClassifierOutput

autodoc modeling_outputs.SequenceClassifierOutput

Seq2SeqSequenceClassifierOutput

autodoc modeling_outputs.Seq2SeqSequenceClassifierOutput

MultipleChoiceModelOutput

autodoc modeling_outputs.MultipleChoiceModelOutput

TokenClassifierOutput

autodoc modeling_outputs.TokenClassifierOutput

QuestionAnsweringModelOutput

autodoc modeling_outputs.QuestionAnsweringModelOutput

Seq2SeqQuestionAnsweringModelOutput

autodoc modeling_outputs.Seq2SeqQuestionAnsweringModelOutput

Seq2SeqSpectrogramOutput

autodoc modeling_outputs.Seq2SeqSpectrogramOutput

SemanticSegmenterOutput

autodoc modeling_outputs.SemanticSegmenterOutput

ImageClassifierOutput

autodoc modeling_outputs.ImageClassifierOutput

ImageClassifierOutputWithNoAttention

autodoc modeling_outputs.ImageClassifierOutputWithNoAttention

DepthEstimatorOutput

autodoc modeling_outputs.DepthEstimatorOutput

Wav2Vec2BaseModelOutput

autodoc modeling_outputs.Wav2Vec2BaseModelOutput

XVectorOutput

autodoc modeling_outputs.XVectorOutput

Seq2SeqTSModelOutput

autodoc modeling_outputs.Seq2SeqTSModelOutput

Seq2SeqTSPredictionOutput

autodoc modeling_outputs.Seq2SeqTSPredictionOutput

SampleTSPredictionOutput

autodoc modeling_outputs.SampleTSPredictionOutput