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=∣xn−yn∣
其中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=‘mean’if reduction=‘sum’
x和y是任意形状的张量,每个张量都有n个元素。
如果设置*reduction = ‘sum’*可以避免n的除法。
Parameters
- size_average (bool, optional) –不推荐使用(请参阅reduction)。默认情况下,损失是批次中每个损失元素的平均数。注意,对于某些损失,每个样本有多个元素。如果该字段size_average 设置为False,则对每个minibatch的损失进行求和。当reduce为False时忽略。默认:True
- reduce (bool, optional) –不推荐使用(请参阅reduction)。默认情况下,根据size_average对每个minibatch的观察值进行平均或求和。如果reduce为False,则返回每个批处理元素的损失,并忽略size_average。默认值:True
- reduction (string, optional) – 指定应用于输出的缩减:‘none’ | ‘mean’ | ‘sum’。“none”:不进行缩减,“mean”:输出的总和除以输出中的元素数,“sum”:输出的总和。注意*:size_average和reduce正在被弃用,同时,指定这两个args中的任何一个都将覆盖reduce*。默认值:“mean”
Shape
- Input: (N, *) 其中 *表示任意数量的附加尺寸
- target:(N, *) ,与输入的形状相同
- output:标量。如果reduction是none, 则(N ,∗ ) ,与输入的形状相同
Examples:
>>> loss = nn.L1Loss()
>>> input = torch.randn(3, 5, requires_grad=True)
>>> target = torch.randn(3, 5)
>>> output = loss(input, target)
>>> output.backward()