L1Loss ------------------------------- .. py:function:: paddle.fluid.layers.L1Loss(reduction='mean') 该接口用于创建一个L1Loss的可调用类,L1Loss计算输入input和标签label间的 `L1 loss` 损失。 该损失函数的数学计算公式如下: 当 `reduction` 设置为 ``'none'`` 时, .. math:: Out = |input - label| 当 `reduction` 设置为 ``'mean'`` 时, .. math:: Out = MEAN(|input - label|) 当 `reduction` 设置为 ``'sum'`` 时, .. math:: Out = SUM(|input - label|) 输入input和标签label的维度是[N, *], 其中N是batch_size, `*` 是任意其他维度。 如果 :attr:`reduction` 是 ``'none'``, 则输出Loss的维度为 [N, *], 与输入input相同。 如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``, 则输出Loss的维度为 [1]。 参数: - **reduction** (string, 可选): - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 `L1Loss` 的均值;设置为 ``'sum'`` 时,计算 `L1Loss` 的总和;设置为 ``'none'`` 时,则返回L1Loss。数据类型为string。 返回:返回计算L1Loss的可调用对象。 **代码示例** .. code-block:: python # declarative mode import paddle.fluid as fluid import numpy as np import paddle input = fluid.data(name="input", shape=[1]) label = fluid.data(name="label", shape=[1]) l1_loss = fluid.layers.L1Loss(reduction='mean') output = l1_loss(input,label) place = fluid.CPUPlace() exe = fluid.Executor(place) exe.run(fluid.default_startup_program()) input_data = np.array([1.5]).astype("float32") label_data = np.array([1.7]).astype("float32") output_data = exe.run(fluid.default_main_program(), feed={"input":input_data, "label":label_data}, fetch_list=[output], return_numpy=True) print(output_data) # [array([0.2], dtype=float32)] # imperative mode import paddle.fluid.dygraph as dg with dg.guard(place) as g: input = dg.to_variable(input_data) label = dg.to_variable(label_data) l1_loss = fluid.layers.L1Loss(reduction='mean') output = l1_loss(input,label) print(output.numpy()) # [0.2]