利用pytorch实现平均绝对值误差(MAE)

LOSS functions

L1Loss

CLASS torch.nn.L1Loss(size_average=None, reduce=None, reduction=‘mean’)

创建一个标准来度量输入x和目标y中的每个元素之间的平均绝对误差(MAE)。
l ( x , y ) = L = { l 1 , . . . , l N } T , l n = ∣ x n − y n ∣ l(x,y)=L=\{l_1,...,l_N\}^T,l_n=|x_n-y_n| l(x,y)=L={l1,...,lN}T,ln=xnyn
其中N为batch size。如果reduction 不是none(默认为 ‘mean’),则:
l ( x , y ) = { m e a n ( L ) , if  r e d u c t i o n = ‘ m e a n ’ s u m ( L ) , if  r e d u c t i o n = ‘ s u m ’ l(x,y)=\begin{cases} mean(L) ,&\text{if } reduction=‘mean’ \\ sum(L),&\text{if } reduction=‘sum’ \end{cases} l(x,y)={mean(L),sum(L),if reduction=meanif reduction=sum
x和y是任意形状的张量,每个张量都有n个元素。
如果设置*reduction = ‘sum’*可以避免n的除法。

Parameters

  • size_average (bool, optional) –不推荐使用(请参阅reduction)。默认情况下,损失是批次中每个损失元素的平均数。注意,对于某些损失,每个样本有多个元素。如果该字段size_average 设置为False,则对每个minibatch的损失进行求和。当reduceFalse时忽略。默认:True
  • reduce (bool, optional) –不推荐使用(请参阅reduction)。默认情况下,根据size_average对每个minibatch的观察值进行平均或求和。如果reduceFalse,则返回每个批处理元素的损失,并忽略size_average。默认值:True
  • reduction (string, optional) – 指定应用于输出的缩减:‘none’ | ‘mean’ | ‘sum’“none”:不进行缩减,“mean”:输出的总和除以输出中的元素数,“sum”:输出的总和。注意*:size_averagereduce正在被弃用,同时,指定这两个args中的任何一个都将覆盖reduce*。默认值:“mean”

Shape

  • Input: (N, *) 其中 *表示任意数量的附加尺寸
  • target:(N, *) ,与输入的形状相同
  • output:标量。如果reductionnone, 则(N ,∗ ) ,与输入的形状相同

Examples:

>>> loss = nn.L1Loss()
>>> input = torch.randn(3, 5, requires_grad=True)
>>> target = torch.randn(3, 5)
>>> output = loss(input, target)
>>> output.backward()

你可能感兴趣的:(深度学习)