文章目录


损失函数,是编译一个神经网络模型必须的两个参数之一,另一个是优化器。损失函数是指用于计算标签值和预测值之间差异的函数,常见的有多种损失函数可供选择,典型的有距离向量,绝对值向量等。

nn.L1Loss

L1Loss计算方法比较简单,原理就是取预测值和真实值的绝对误差的平均数。计算公式如下

Pytorch损失函数(nn.L1Loss、nn.SmoothL1Loss、nn.MSELoss 、nn.CrossEntropyLoss、nn.NLLLoss)_距离向量

nn.SmoothL1Loss

nn.SmoothL1Loss:计算分俩方面,当误差在 (-1,1) 上是平方损失,其他情况是L1 损失。计算公式如下:

Pytorch损失函数(nn.L1Loss、nn.SmoothL1Loss、nn.MSELoss 、nn.CrossEntropyLoss、nn.NLLLoss)_多分类_02

nn.MSELoss

nn.MSELoss:计算公式是预测值和真实值之间的平方和的平均数。

Pytorch损失函数(nn.L1Loss、nn.SmoothL1Loss、nn.MSELoss 、nn.CrossEntropyLoss、nn.NLLLoss)_多分类_03

nn.CrossEntropyLoss

交叉熵损失函数,常用于图像分类的神经网络中,计算方式如下:

Pytorch损失函数(nn.L1Loss、nn.SmoothL1Loss、nn.MSELoss 、nn.CrossEntropyLoss、nn.NLLLoss)_损失函数_04

nn.NLLLoss

负对数似然损失函数,这个损失函数一般也是用在图像识别模型上。和nn.CrossEntropyLoss的功能是非常相似的,通常都是用在多分类模型中,实际应用一般用NLLLoss比较多。

Pytorch损失函数(nn.L1Loss、nn.SmoothL1Loss、nn.MSELoss 、nn.CrossEntropyLoss、nn.NLLLoss)_距离向量_05