目录
nn.L1Loss:
nn.NLLLoss:
nn.MSELoss:
nn.CrossEntropyLoss:
损失函数是用来估量模型的预测值与真实值的不一致程度,它是一个非负实值函数。我们训练模型的过程,就是通过不断的迭代计算,使用梯度下降的优化算法,使得损失函数越来越小。损失函数越小就表示算法达到意义上的最优。
直白来说,就是用它来描述我们模型的鲁棒性,损失函数越小,模型的鲁棒性就越好。
由于我是以学习pytorch入门,所以这里来看看pytorch的内置函数。
nn.L1Loss:
首要条件是x 和 y 的维度要一样(可以是向量或者矩阵),表示输入x和目标y之间差的绝对值,得到的 loss 维度也是对应一样的。
nn.NLLLoss:
用于多分类的负对数似然损失函数
NLLLoss中如果传递了weights参数,会对损失进行加权,公式就变成了
nn.MSELoss:
均方损失函数 ,输入x和目标y之间均方差
nn.CrossEntropyLoss:
多分类用的交叉熵损失函数,LogSoftMax和NLLLoss集成到一个类中,会调用nn.NLLLoss函数,我们可以理解为CrossEntropyLoss()=log_softmax() + NLLLoss()
因为使用了NLLLoss,所以也可以传入weight参数,这时loss的计算公式变为:
所以一般多分类的情况会使用这个损失函数