l1_loss¶
- paddle.nn.functional. l1_loss ( input, label, reduction='mean', name=None ) [source]
-
Computes the L1 Loss of Tensor
input
andlabel
as follows.If reduction set to
'none'
, the loss is:\[Out = \lvert input - label \rvert\]If reduction set to
'mean'
, the loss is:\[Out = MEAN(\lvert input - label \rvert)\]If reduction set to
'sum'
, the loss is:\[Out = SUM(\lvert input - label \rvert)\]- Parameters
-
input (Tensor) – The input tensor. The shapes is [N, *], where N is batch size and * means any number of additional dimensions. It’s data type should be float32, float64, int32, int64.
label (Tensor) – label. The shapes is [N, *], same shape as
input
. It’s data type should be float32, float64, int32, int64.reduction (str, optional) – Indicate the reduction to apply to the loss, the candidates are
'none'
|'mean'
|'sum'
. If reduction is'none'
, the unreduced loss is returned; If reduction is'mean'
, the reduced mean loss is returned. If reduction is'sum'
, the reduced sum loss is returned. Default is'mean'
.name (str, optional) – Name for the operation (optional, default is None). For more information, please refer to Name.
- Returns
-
Tensor, the L1 Loss of Tensor
input
andlabel
. If reduction is'none'
, the shape of output loss is \([N, *]\), the same asinput
. If reduction is'mean'
or'sum'
, the shape of output loss is [].
Examples
>>> import paddle >>> input = paddle.to_tensor([[1.5, 0.8], [0.2, 1.3]]) >>> label = paddle.to_tensor([[1.7, 1], [0.4, 0.5]]) >>> l1_loss = paddle.nn.functional.l1_loss(input, label) >>> print(l1_loss) Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True, 0.34999999) >>> l1_loss = paddle.nn.functional.l1_loss(input, label, reduction='none') >>> print(l1_loss) Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True, [[0.20000005, 0.19999999], [0.20000000, 0.79999995]]) >>> l1_loss = paddle.nn.functional.l1_loss(input, label, reduction='sum') >>> print(l1_loss) Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True, 1.39999998)