关于loss计算和最后的词对关系张量计算
nlper01 opened this issue · 3 comments
nlper01 commented
大佬你好,有几个地方还是没明白,我跨专业有点菜,希望大佬不会嫌我烦。首先是loss,论文里面写的是负对数似然损失,代码里面好像用的是交叉熵,这个loss怎么计算呀?协预测器出来处理后得到词对关系分类矩阵,那具体怎么在这个矩阵上计算损失?另外一个就是论文里面说Co-Predictor Layer 出来后得到的是一个关系分数张量,经过softmax后,得到后面这个Word-Word Relation Classification 张量。我看了代码,协预测器出来的outputs[B,L,L,num_class]经过torch.argmax(outputs ,-1)得到词对关系张量[B,L,L],torch.argmax()返回的是最大值索引,怎么得到这里Word-Word Relation Classification ,不是很理解,希望能够得到大佬的解答。
ljynlp commented
1.交叉熵与负对数似然+log_softmax等价
2.得到词对关系分类矩阵后与词对关系标签矩阵一同计算交叉熵即可
3.torch.argmax返回分数最高的词对类别index,通过index即可找到对应的词对类别
FalAnge1217 commented
对于3:我这样理解对吗?如果不看batch这一维,就是[L,L,num_class]就是num_class个[L,L]的矩阵,然后argmax后变成[L,L]。那意思是每一句话中包含的NNW,THW*预测出来num_class种可能,然后返回最大那种?
ljynlp commented
是的