From 8d39f1a2729fc9e61e2906af9b1667d08a244ee2 Mon Sep 17 00:00:00 2001 From: yangguohao <70266361+yangguohao@users.noreply.github.com> Date: Thu, 28 Apr 2022 23:56:55 +0800 Subject: [PATCH 01/10] Create soft_margin_loss_cn.rst --- .../nn/functional/soft_margin_loss_cn.rst | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/api/paddle/nn/functional/soft_margin_loss_cn.rst diff --git a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst new file mode 100644 index 00000000000..db9a15d3efe --- /dev/null +++ b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst @@ -0,0 +1,38 @@ +.. _cn_api_paddle_nn_functional_soft_margin_losss: + +soft_margin_loss +------------------------------- + +.. py:class:: paddle.nn.MultiLabelSoftMarginLoss(weight:Optional=None, reduction: str = 'mean') + +该 APIs 计算输入 `input` 和 `label` 间的二分类损失。 + + +损失函数按照下列公式计算 + +.. math:: + \text{loss}(x, y) = \sum_i \frac{\log(1 + \exp(-y[i]*x[i]))}{\text{x.nelement}()} + + +最后,添加 `reduce` 操作到前面的输出Out上。当 `reduction` 为 `none` 时,直接返回最原始的 `Out` 结果。当 `reduction` 为 `mean` 时,返回输出的均值 :math:`Out = MEAN(Out)` 。当 `reduction` 为 `sum` 时,返回输出的求和 :math:`Out = SUM(Out)` 。 + + +参数 +::::::::: + - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始Loss。 + - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name` 。 + +形状 +::::::::: + - **input** (Tensor) - :math:`[N, *]` , 其中N是batch_size, `*` 是任意其他维度。数据类型是float32、float64。 + - **label** (Tensor) - :math:`[N, *]` ,标签 ``label`` 的维度、数据类型与输入 ``input`` 相同。 + - **output** (Tensor) - 输出的Tensor。如果 :attr:`reduction` 是 ``'none'``, 则输出的维度为 :math:`[N, *]` , 与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``, 则输出的维度为 :math:`[1]` 。 + +返回 +::::::::: + 返回计算的Loss。 + + +代码示例 +::::::::: +COPY-FROM: Paddle.nn.functional.loss.soft_margin_loss From 2752f2a9f396077b859b371dcd96547b944c8dcf Mon Sep 17 00:00:00 2001 From: yangguohao <70266361+yangguohao@users.noreply.github.com> Date: Fri, 29 Apr 2022 07:33:56 +0800 Subject: [PATCH 02/10] Create SoftMarginLoss_cn.rst --- docs/api/paddle/nn/SoftMarginLoss_cn.rst | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/api/paddle/nn/SoftMarginLoss_cn.rst diff --git a/docs/api/paddle/nn/SoftMarginLoss_cn.rst b/docs/api/paddle/nn/SoftMarginLoss_cn.rst new file mode 100644 index 00000000000..88cc4a05c71 --- /dev/null +++ b/docs/api/paddle/nn/SoftMarginLoss_cn.rst @@ -0,0 +1,38 @@ +.. _cn_api_paddle_nn_SoftMarginloss: + +SoftMarginloss +------------------------------- + +.. py:class:: paddle.nn.SoftMarginloss(reduction: str = 'mean', name=) + +该 APIs 生成一个可以计算输入 `input` 和 `label` 间的二分类损失的类。 + + +损失函数按照下列公式计算 + +.. math:: + \text{loss}(x, y) = \sum_i \frac{\log(1 + \exp(-y[i]*x[i]))}{\text{x.nelement}()} + + +最后,添加 `reduce` 操作到前面的输出Out上。当 `reduction` 为 `none` 时,直接返回最原始的 `Out` 结果。当 `reduction` 为 `mean` 时,返回输出的均值 :math:`Out = MEAN(Out)` 。当 `reduction` 为 `sum` 时,返回输出的求和 :math:`Out = SUM(Out)` 。 + + +参数 +::::::::: + - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始Loss。 + - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name` 。 + +形状 +::::::::: + - **input** (Tensor) - :math:`[N, *]` , 其中N是batch_size, `*` 是任意其他维度。数据类型是float32、float64。 + - **label** (Tensor) - :math:`[N, *]` ,标签 ``label`` 的维度、数据类型与输入 ``input`` 相同。 + - **output** (Tensor) - 输出的Tensor。如果 :attr:`reduction` 是 ``'none'``, 则输出的维度为 :math:`[N, *]` , 与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``, 则输出的维度为 :math:`[1]` 。 + +返回 +::::::::: + 返回一个可以计算Loss的类 + + +代码示例 +::::::::: +COPY-FROM: Paddle.nn.layer.loss.SoftMarginLoss From e53d56a866c6320c44dca56d1882887abf12e54f Mon Sep 17 00:00:00 2001 From: yangguohao <70266361+yangguohao@users.noreply.github.com> Date: Thu, 5 May 2022 14:14:26 +0800 Subject: [PATCH 03/10] Update SoftMarginLoss_cn.rst --- docs/api/paddle/nn/SoftMarginLoss_cn.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/paddle/nn/SoftMarginLoss_cn.rst b/docs/api/paddle/nn/SoftMarginLoss_cn.rst index 88cc4a05c71..a13dfbc86bd 100644 --- a/docs/api/paddle/nn/SoftMarginLoss_cn.rst +++ b/docs/api/paddle/nn/SoftMarginLoss_cn.rst @@ -35,4 +35,4 @@ SoftMarginloss 代码示例 ::::::::: -COPY-FROM: Paddle.nn.layer.loss.SoftMarginLoss +COPY-FROM: paddle.nn.layer.loss.SoftMarginLoss From 56555e793538aa459f2132a7d4d68c404cff9793 Mon Sep 17 00:00:00 2001 From: yangguohao <70266361+yangguohao@users.noreply.github.com> Date: Thu, 5 May 2022 14:15:34 +0800 Subject: [PATCH 04/10] Update soft_margin_loss_cn.rst --- docs/api/paddle/nn/functional/soft_margin_loss_cn.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst index db9a15d3efe..0170ea7f7d6 100644 --- a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst +++ b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst @@ -3,7 +3,7 @@ soft_margin_loss ------------------------------- -.. py:class:: paddle.nn.MultiLabelSoftMarginLoss(weight:Optional=None, reduction: str = 'mean') +.. py:class:: paddle.nn.functional.soft_margin_loss(input, label, weight:Optional=None, reduction: str = 'mean') 该 APIs 计算输入 `input` 和 `label` 间的二分类损失。 @@ -35,4 +35,4 @@ soft_margin_loss 代码示例 ::::::::: -COPY-FROM: Paddle.nn.functional.loss.soft_margin_loss +COPY-FROM: paddle.nn.functional.soft_margin_loss From 305fa144eec61d0aa498dd5d1540c748035d9153 Mon Sep 17 00:00:00 2001 From: yangguohao <70266361+yangguohao@users.noreply.github.com> Date: Thu, 5 May 2022 14:16:37 +0800 Subject: [PATCH 05/10] Update SoftMarginLoss_cn.rst --- docs/api/paddle/nn/SoftMarginLoss_cn.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api/paddle/nn/SoftMarginLoss_cn.rst b/docs/api/paddle/nn/SoftMarginLoss_cn.rst index a13dfbc86bd..a84da7f41a3 100644 --- a/docs/api/paddle/nn/SoftMarginLoss_cn.rst +++ b/docs/api/paddle/nn/SoftMarginLoss_cn.rst @@ -3,7 +3,7 @@ SoftMarginloss ------------------------------- -.. py:class:: paddle.nn.SoftMarginloss(reduction: str = 'mean', name=) +.. py:class:: paddle.nn.SoftMarginloss(reduction: str = 'mean', name=None) 该 APIs 生成一个可以计算输入 `input` 和 `label` 间的二分类损失的类。 @@ -30,9 +30,9 @@ SoftMarginloss 返回 ::::::::: - 返回一个可以计算Loss的类 + 返回计算SoftMarginLoss的可调用对象 代码示例 ::::::::: -COPY-FROM: paddle.nn.layer.loss.SoftMarginLoss +COPY-FROM: paddle.nn.SoftMarginLoss From e5c0ec6f3993c3c372f1fd9ccd7391b8685d50a2 Mon Sep 17 00:00:00 2001 From: yangguohao <70266361+yangguohao@users.noreply.github.com> Date: Thu, 5 May 2022 14:25:48 +0800 Subject: [PATCH 06/10] Update Overview_cn.rst --- docs/api/paddle/nn/Overview_cn.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api/paddle/nn/Overview_cn.rst b/docs/api/paddle/nn/Overview_cn.rst index 33d5c77c358..f8351ab04b6 100644 --- a/docs/api/paddle/nn/Overview_cn.rst +++ b/docs/api/paddle/nn/Overview_cn.rst @@ -256,6 +256,7 @@ Loss层 " :ref:`paddle.nn.MSELoss ` ", "均方差误差损失层" " :ref:`paddle.nn.NLLLoss ` ", "NLLLoss层" " :ref:`paddle.nn.SmoothL1Loss ` ", "平滑L1损失层" + " :ref:`paddle.nn.SoftMarginLoss ` ", "SoftMarginLoss层" .. _vision_layers: @@ -473,6 +474,7 @@ Embedding相关函数 " :ref:`paddle.nn.functional.smooth_l1_loss ` ", "用于计算平滑L1损失" " :ref:`paddle.nn.functional.softmax_with_cross_entropy ` ", "将softmax操作、交叉熵损失函数的计算过程进行合并" " :ref:`paddle.nn.functional.margin_cross_entropy ` ", "支持 ``Arcface``,``Cosface``,``Sphereface`` 的结合 Margin 损失函数" + " :ref:`paddle.nn.functional.soft_margin_loss ` ", "用于计算soft margin loss损失函数" .. _common_functional: From 5b11bd24ffb5f07b35bbb440e893ec4b2f210966 Mon Sep 17 00:00:00 2001 From: yangguohao <70266361+yangguohao@users.noreply.github.com> Date: Mon, 9 May 2022 22:13:52 +0800 Subject: [PATCH 07/10] Update soft_margin_loss_cn.rst --- docs/api/paddle/nn/functional/soft_margin_loss_cn.rst | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst index 0170ea7f7d6..eb29ab6fa82 100644 --- a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst +++ b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst @@ -3,9 +3,9 @@ soft_margin_loss ------------------------------- -.. py:class:: paddle.nn.functional.soft_margin_loss(input, label, weight:Optional=None, reduction: str = 'mean') +.. py:function:: paddle.nn.functional.soft_margin_loss(input, label, weight:Optional=None, reduction: str = 'mean') -该 APIs 计算输入 `input` 和 `label` 间的二分类损失。 +计算输入 `input` 和 `label` 间的二分类损失。 损失函数按照下列公式计算 @@ -19,18 +19,19 @@ soft_margin_loss 参数 ::::::::: - - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始Loss。 + - **weight** (Tensor,可选) - 手动指定每个batch二值交叉熵的权重,如果指定的话,维度必须是一个batch的数据的维度。数据类型是float32, float64。默认值是:None。 + - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始 Loss。 - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name` 。 形状 ::::::::: - - **input** (Tensor) - :math:`[N, *]` , 其中N是batch_size, `*` 是任意其他维度。数据类型是float32、float64。 + - **input** (Tensor) - :math:`[N, *]` ,其中N是batch_size, `*` 是任意其他维度。数据类型是float32、float64。 - **label** (Tensor) - :math:`[N, *]` ,标签 ``label`` 的维度、数据类型与输入 ``input`` 相同。 - **output** (Tensor) - 输出的Tensor。如果 :attr:`reduction` 是 ``'none'``, 则输出的维度为 :math:`[N, *]` , 与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``, 则输出的维度为 :math:`[1]` 。 返回 ::::::::: - 返回计算的Loss。 + - 输出的结果Tensor。如果 :attr:`reduction` 是 ``'none'``, 则输出的维度为 :math:`[N, *]` , 与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``, 则输出的维度为 :math:`[1]` 。 代码示例 From 61911a828f6c28547f3a90dad1f0627751a20736 Mon Sep 17 00:00:00 2001 From: yangguohao <70266361+yangguohao@users.noreply.github.com> Date: Mon, 9 May 2022 22:16:04 +0800 Subject: [PATCH 08/10] Update soft_margin_loss_cn.rst --- docs/api/paddle/nn/functional/soft_margin_loss_cn.rst | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst index eb29ab6fa82..e0c0c19435b 100644 --- a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst +++ b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst @@ -19,15 +19,12 @@ soft_margin_loss 参数 ::::::::: + - **input** (Tensor) - :math:`[N, *]` ,其中N是batch_size, `*` 是任意其他维度。数据类型是float32、float64。 + - **label** (Tensor) - :math:`[N, *]` ,标签 ``label`` 的维度、数据类型与输入 ``input`` 相同。 - **weight** (Tensor,可选) - 手动指定每个batch二值交叉熵的权重,如果指定的话,维度必须是一个batch的数据的维度。数据类型是float32, float64。默认值是:None。 - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始 Loss。 - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name` 。 -形状 -::::::::: - - **input** (Tensor) - :math:`[N, *]` ,其中N是batch_size, `*` 是任意其他维度。数据类型是float32、float64。 - - **label** (Tensor) - :math:`[N, *]` ,标签 ``label`` 的维度、数据类型与输入 ``input`` 相同。 - - **output** (Tensor) - 输出的Tensor。如果 :attr:`reduction` 是 ``'none'``, 则输出的维度为 :math:`[N, *]` , 与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``, 则输出的维度为 :math:`[1]` 。 返回 ::::::::: From 0a3927306e5465f406fec3070f100ccfaa27afed Mon Sep 17 00:00:00 2001 From: Ligoml <39876205+Ligoml@users.noreply.github.com> Date: Tue, 26 Jul 2022 11:11:28 +0800 Subject: [PATCH 09/10] Update SoftMarginLoss_cn.rst --- docs/api/paddle/nn/SoftMarginLoss_cn.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/api/paddle/nn/SoftMarginLoss_cn.rst b/docs/api/paddle/nn/SoftMarginLoss_cn.rst index a84da7f41a3..6a0cfbc8730 100644 --- a/docs/api/paddle/nn/SoftMarginLoss_cn.rst +++ b/docs/api/paddle/nn/SoftMarginLoss_cn.rst @@ -3,9 +3,9 @@ SoftMarginloss ------------------------------- -.. py:class:: paddle.nn.SoftMarginloss(reduction: str = 'mean', name=None) +.. py:class:: paddle.nn.SoftMarginloss((reduction='mean', name=None) -该 APIs 生成一个可以计算输入 `input` 和 `label` 间的二分类损失的类。 +生成一个可以计算输入 `input` 和 `label` 间的二分类损失的类。 损失函数按照下列公式计算 @@ -19,18 +19,18 @@ SoftMarginloss 参数 ::::::::: - - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始Loss。 + - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始Loss。 - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name` 。 形状 ::::::::: - **input** (Tensor) - :math:`[N, *]` , 其中N是batch_size, `*` 是任意其他维度。数据类型是float32、float64。 - **label** (Tensor) - :math:`[N, *]` ,标签 ``label`` 的维度、数据类型与输入 ``input`` 相同。 - - **output** (Tensor) - 输出的Tensor。如果 :attr:`reduction` 是 ``'none'``, 则输出的维度为 :math:`[N, *]` , 与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``, 则输出的维度为 :math:`[1]` 。 + - **output** (Tensor) - 输出的Tensor。如果 :attr:`reduction` 是 ``'none'``,则输出的维度为 :math:`[N, *]`,与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``,则输出的维度为 :math:`[1]` 。 返回 ::::::::: - 返回计算SoftMarginLoss的可调用对象 + 返回计算SoftMarginLoss的可调用对象。 代码示例 From b1effd1318ec2f5feff5405523d16da5487756f9 Mon Sep 17 00:00:00 2001 From: Ligoml <39876205+Ligoml@users.noreply.github.com> Date: Tue, 26 Jul 2022 11:13:49 +0800 Subject: [PATCH 10/10] Update soft_margin_loss_cn.rst --- docs/api/paddle/nn/functional/soft_margin_loss_cn.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst index e0c0c19435b..4fa9fb2bc92 100644 --- a/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst +++ b/docs/api/paddle/nn/functional/soft_margin_loss_cn.rst @@ -3,7 +3,7 @@ soft_margin_loss ------------------------------- -.. py:function:: paddle.nn.functional.soft_margin_loss(input, label, weight:Optional=None, reduction: str = 'mean') +.. py:function:: paddle.nn.functional.soft_margin_loss(input, label, reduction='mean', name=None) 计算输入 `input` 和 `label` 间的二分类损失。 @@ -21,14 +21,13 @@ soft_margin_loss ::::::::: - **input** (Tensor) - :math:`[N, *]` ,其中N是batch_size, `*` 是任意其他维度。数据类型是float32、float64。 - **label** (Tensor) - :math:`[N, *]` ,标签 ``label`` 的维度、数据类型与输入 ``input`` 相同。 - - **weight** (Tensor,可选) - 手动指定每个batch二值交叉熵的权重,如果指定的话,维度必须是一个batch的数据的维度。数据类型是float32, float64。默认值是:None。 - - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``, ``'mean'``, ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始 Loss。 + - **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有: ``'none'``、 ``'mean'``、 ``'sum'`` 。默认为 ``'mean'``,计算 Loss 的均值;设置为 ``'sum'`` 时,计算 Loss 的总和;设置为 ``'none'`` 时,则返回原始 Loss。 - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name` 。 返回 ::::::::: - - 输出的结果Tensor。如果 :attr:`reduction` 是 ``'none'``, 则输出的维度为 :math:`[N, *]` , 与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``, 则输出的维度为 :math:`[1]` 。 + - 输出的结果Tensor。如果 :attr:`reduction` 是 ``'none'``, 则输出的维度为 :math:`[N, *]` ,与输入 ``input`` 的形状相同。如果 :attr:`reduction` 是 ``'mean'`` 或 ``'sum'``,则输出的维度为 :math:`[1]` 。 代码示例