pytorch中的loss函数(3):L1Loss

1、L1Loss原理

L1Loss计算预测值和真实值的mean absolute error (MAE,平均绝对值误差)。 

 loss(x,y)=\left\{\begin{matrix} mean(L),if reduction='mean'\\sum(L) ,if reduction='sum' \end{matrix}\right.

L=\{​{l}_1,...,{l}_N\}^{T},{l}_n=|{x}_n-{y}_n|

其中:

  • x: (N, *)(N,∗) where *∗ means, any number of additional dimensions

  • y: (N, *)(N,∗) , same shape as the input

  • Output: scalar. If reduction is 'none', then (N, *)(N,∗) , same shape as the input

若是mean:先计算预测值x与真实值y这两个tensor中的对应位置的两个元素的差的绝对值,得到一个新的同样大小的tensor,然后求这个tensor中所有元素的均值;

若是sum:先计算预测值x与真实值y这两个tensor中的对应位置的两个元素的差的绝对值,得到一个新的同样大小的tensor,然后求这个tensor中所有元素的和;

2、使用L1Loss进行多分类

2.1 数据源以及如何打标签

以mnist数据源为例,共有10个分类。mnist中每张图片的标签是0-9中的一个数字。

2.2 模型训练

2.2.1 模型搭建

L1Loss层前一层输出的特征图的大小必须是1*1,我们可以使用一个out_features是1的Linear层(全连接层)来实现。

你可能感兴趣的:(pytorch中的loss函数(3):L1Loss)