NLLLoss
NLLLoss的计算前,卷积或者全卷积获取的结果需要通过softmax以及log函数的计算。
NLLLoss做的事情主要是将输入数据取反,然后求均值
CrossEntropyLoss
通过网络卷积或全卷积直接获取的结果即可参与计算交叉熵损失。
简单快捷,计算速度相对也快。
具体实现代码:
初始化数据
softmax操作
torch.Log操作
计算NLLLoss
NLLLoss的结果就是把上面的输出与Label对应的那个值拿出来,再去掉负号,再求均值。
【这句话其实就是求交叉熵】
- 假设我们现在Target是[1, 0, 2](第一张图片是猫,第二张是狗,第三张是熊)。
- 第一行取第1个元素,第二行取第0个,第三行取第2个,去掉负号,结果是:0.6858, 1.7522, 1.1409。
-
再求个均值
计算CrossEntropyLoss
softmax_loss的流程:
- softmax
- log
-
nn.NLLLoss
CrossEntropyLoss就是把以上Softmax_Log–NLLLoss合并成一步
版权声明:本文为m0_46825740原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。