gitabtion / BertBasedCorrectionModels

PyTorch impelementations of BERT-based Spelling Error Correction Models. 基于BERT的文本纠错模型,使用PyTorch实现。
Apache License 2.0
265 stars 43 forks source link

请教一下作者,在MacBert训练过程中,text_labels的Padding部分为什么要设置为-100 #9

Closed melonxi closed 3 years ago

melonxi commented 3 years ago

BertBasedCorrectionModels/bbcm/modeling/csc/modeling_bert4csc.py的第30行 text_labels[text_labels == 0] = -100 这里为什么要设置为-100呢,可以稍微解释一下吗,谢谢啦

gitabtion commented 3 years ago

在pytorch里,cross entropy loss默认不计算label为-100位置的loss,此为背景。此处,label==0意味着该处为pad的部分,是不应该计算loss的。

melonxi commented 3 years ago

在pytorch里,cross entropy loss默认不计算label为-100位置的loss,此为背景。此处,label==0意味着该处为pad的部分,是不应该计算loss的。

感谢解答!

mosthandsomeman commented 3 years ago

BertBasedCorrectionModels/bbcm/modeling/csc/modeling_bert4csc.py的第30行 text_labels[text_labels == 0] = -100 这里为什么要设置为-100呢,可以稍微解释一下吗,谢谢啦 -100对应的位置,应该是默认不处理,-100这个值是框架里设置的