pytorch的官方文档看了好久也没看懂。。。多亏广大的网友特别鸣谢参考文献中的网友。。。。
NLLoss损失函数官方示例如下:
>>> m = nn.LogSoftmax()
>>> loss = nn.NLLLoss()
>>> # input is of size N x C = 3 x 5
>>> input = torch.randn(3, 5, requires_grad=True)
>>> # each element in target has to have 0 <= value < C
>>> target = torch.tensor([1, 0, 4])
>>> output = loss(m(input), target)
>>> output.backward()
>>>
在进行句子的关系分类时,输入n条句子,输出维度为(batch_size, C)的Tensor,其中C是分类的个数。那官方的文档来说batch_size = 3, 关系分类成5类。
解释如下:
input的输出
input经过log_softmax的输出如下,即m(input):
NLLLoss的结