すべてのモデルには、[~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
]である。
これは、オプションで loss
、logits
、オプションで hidden_states
、オプションで attentions
属性を持つことを意味します。
オプションの attentions
属性を持つことを意味する。ここでは、labels
を渡したのでloss
があるが、hidden_states
とattentions
はない。
output_hidden_states=True
やoutput_attentions=True
を渡していないので、hidden_states
とattentions
はない。
output_attentions=True
を渡さなかったからだ。
output_hidden_states=True
を渡すと、outputs.hidden_states[-1]
が outputs.last_hidden_states
と正確に一致することを期待するかもしれない。
しかし、必ずしもそうなるとは限りません。モデルによっては、最後に隠された状態が返されたときに、正規化やその後の処理を適用するものもあります。
通常と同じように各属性にアクセスできます。その属性がモデルから返されなかった場合は、
は None
を取得します。ここで、たとえばoutputs.loss
はモデルによって計算された損失であり、outputs.attentions
は
None
。
outputs
オブジェクトをタプルとして考える場合、None
値を持たない属性のみが考慮されます。
たとえば、ここには 2 つの要素、loss
、次にlogits
があります。
outputs[:2]
たとえば、タプル (outputs.loss, Outputs.logits)
を返します。
outputs
オブジェクトを辞書として考慮する場合、「None」を持たない属性のみが考慮されます。
価値観。たとえば、ここにはloss
と logits
という 2 つのキーがあります。
ここでは、複数のモデル タイプで使用される汎用モデルの出力を文書化します。具体的な出力タイプは次のとおりです。 対応するモデルのページに記載されています。
[[autodoc]] utils.ModelOutput - to_tuple
[[autodoc]] modeling_outputs.BaseModelOutput
[[autodoc]] modeling_outputs.BaseModelOutputWithPooling
[[autodoc]] modeling_outputs.BaseModelOutputWithCrossAttentions
[[autodoc]] modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions
[[autodoc]] modeling_outputs.BaseModelOutputWithPast
[[autodoc]] modeling_outputs.BaseModelOutputWithPastAndCrossAttentions
[[autodoc]] modeling_outputs.Seq2SeqModelOutput
[[autodoc]] modeling_outputs.CausalLMOutput
[[autodoc]] modeling_outputs.CausalLMOutputWithCrossAttentions
[[autodoc]] modeling_outputs.CausalLMOutputWithPast
[[autodoc]] modeling_outputs.MaskedLMOutput
[[autodoc]] modeling_outputs.Seq2SeqLMOutput
[[autodoc]] modeling_outputs.NextSentencePredictorOutput
[[autodoc]] modeling_outputs.SequenceClassifierOutput
[[autodoc]] modeling_outputs.Seq2SeqSequenceClassifierOutput
[[autodoc]] modeling_outputs.MultipleChoiceModelOutput
[[autodoc]] modeling_outputs.TokenClassifierOutput
[[autodoc]] modeling_outputs.QuestionAnsweringModelOutput
[[autodoc]] modeling_outputs.Seq2SeqQuestionAnsweringModelOutput
[[autodoc]] modeling_outputs.Seq2SeqSpectrogramOutput
[[autodoc]] modeling_outputs.SemanticSegmenterOutput
[[autodoc]] modeling_outputs.ImageClassifierOutput
[[autodoc]] modeling_outputs.ImageClassifierOutputWithNoAttention
[[autodoc]] modeling_outputs.DepthEstimatorOutput
[[autodoc]] modeling_outputs.Wav2Vec2BaseModelOutput
[[autodoc]] modeling_outputs.XVectorOutput
[[autodoc]] modeling_outputs.Seq2SeqTSModelOutput
[[autodoc]] modeling_outputs.Seq2SeqTSPredictionOutput
[[autodoc]] modeling_outputs.SampleTSPredictionOutput
[[autodoc]] modeling_tf_outputs.TFBaseModelOutput
[[autodoc]] modeling_tf_outputs.TFBaseModelOutputWithPooling
[[autodoc]] modeling_tf_outputs.TFBaseModelOutputWithPoolingAndCrossAttentions
[[autodoc]] modeling_tf_outputs.TFBaseModelOutputWithPast
[[autodoc]] modeling_tf_outputs.TFBaseModelOutputWithPastAndCrossAttentions
[[autodoc]] modeling_tf_outputs.TFSeq2SeqModelOutput
[[autodoc]] modeling_tf_outputs.TFCausalLMOutput
[[autodoc]] modeling_tf_outputs.TFCausalLMOutputWithCrossAttentions
[[autodoc]] modeling_tf_outputs.TFCausalLMOutputWithPast
[[autodoc]] modeling_tf_outputs.TFMaskedLMOutput
[[autodoc]] modeling_tf_outputs.TFSeq2SeqLMOutput
[[autodoc]] modeling_tf_outputs.TFNextSentencePredictorOutput
[[autodoc]] modeling_tf_outputs.TFSequenceClassifierOutput
[[autodoc]] modeling_tf_outputs.TFSeq2SeqSequenceClassifierOutput
[[autodoc]] modeling_tf_outputs.TFMultipleChoiceModelOutput
[[autodoc]] modeling_tf_outputs.TFTokenClassifierOutput
[[autodoc]] modeling_tf_outputs.TFQuestionAnsweringModelOutput
[[autodoc]] modeling_tf_outputs.TFSeq2SeqQuestionAnsweringModelOutput
[[autodoc]] modeling_flax_outputs.FlaxBaseModelOutput
[[autodoc]] modeling_flax_outputs.FlaxBaseModelOutputWithPast
[[autodoc]] modeling_flax_outputs.FlaxBaseModelOutputWithPooling
[[autodoc]] modeling_flax_outputs.FlaxBaseModelOutputWithPastAndCrossAttentions
[[autodoc]] modeling_flax_outputs.FlaxSeq2SeqModelOutput
[[autodoc]] modeling_flax_outputs.FlaxCausalLMOutputWithCrossAttentions
[[autodoc]] modeling_flax_outputs.FlaxMaskedLMOutput
[[autodoc]] modeling_flax_outputs.FlaxSeq2SeqLMOutput
[[autodoc]] modeling_flax_outputs.FlaxNextSentencePredictorOutput
[[autodoc]] modeling_flax_outputs.FlaxSequenceClassifierOutput
[[autodoc]] modeling_flax_outputs.FlaxSeq2SeqSequenceClassifierOutput
[[autodoc]] modeling_flax_outputs.FlaxMultipleChoiceModelOutput
[[autodoc]] modeling_flax_outputs.FlaxTokenClassifierOutput
[[autodoc]] modeling_flax_outputs.FlaxQuestionAnsweringModelOutput
[[autodoc]] modeling_flax_outputs.FlaxSeq2SeqQuestionAnsweringModelOutput