AbdulElahGwaith's picture
Upload folder using huggingface_hub
a9bd396 verified

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