5

model() 呼び出しの損失の出力が困惑の形であるという github のコメントがいくつか見られます: https://github.com/huggingface/transformers/issues/473

しかし、関連するコードを見ると... https://huggingface.co/transformers/_modules/transformers/modeling_openai.html#OpenAIGPTLMHeadModel.forward

    if labels is not None:
        # Shift so that tokens < n predict n
        shift_logits = lm_logits[..., :-1, :].contiguous()
        shift_labels = labels[..., 1:].contiguous()
        # Flatten the tokens
        loss_fct = CrossEntropyLoss()
        loss = loss_fct(shift_logits.view(-1, shift_logits.size(-1)), shift_labels.view(-1))
        outputs = (loss,) + outputs

    return outputs  # (loss), lm_logits, (all hidden states), (all attentions)

交差エントロピーが計算されているのがわかりますが、困惑への変換はありません。損失は​​最終的にどこに変換されますか? それとも、私が理解していない変換がすでにそこにありますか?

4

2 に答える 2

0

ラテックスは問題ありません。定義による困惑 (トリプル P) は次のとおりです。

PP(p) = e^(H(p))

H はカオス (古代ギリシャ語: χάος) またはエントロピーを表します。一般に、交差エントロピーがあります。

PP(p) = e^(H(p,q))

e は対数の自然な底であり、PyTorch がエントロピーとクロス エントロピーを計算する方法です。

于 2022-03-02T13:33:56.010 に答える