diff --git a/doc/fluid/api/nn.rst b/doc/fluid/api/nn.rst index 075229b4fc868a8195fb687d1f4385c5dc30db6c..3d8ad814db7dfe9da66f6324117ad7c6c83c18fb 100644 --- a/doc/fluid/api/nn.rst +++ b/doc/fluid/api/nn.rst @@ -84,7 +84,6 @@ paddle.nn nn/logsigmoid.rst nn/loss.rst nn/lrn.rst - nn/margin_rank_loss.rst nn/matrix_nms.rst nn/maxout.rst nn/mse_loss.rst @@ -150,3 +149,5 @@ paddle.nn nn/while_loop.rst nn/yolo_box.rst nn/yolov3_loss.rst + nn/functional/loss/margin_ranking_loss.rst + nn/layer/loss/MarginRankingLoss.rst diff --git a/doc/fluid/api/nn/functional/loss/margin_ranking_loss.rst b/doc/fluid/api/nn/functional/loss/margin_ranking_loss.rst new file mode 100644 index 0000000000000000000000000000000000000000..e92eadc126a49d8a46bcfc06960eb39dcdc35fec --- /dev/null +++ b/doc/fluid/api/nn/functional/loss/margin_ranking_loss.rst @@ -0,0 +1,11 @@ +.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}` + !DO NOT EDIT THIS FILE MANUALLY! + +.. _api_nn_functional_loss_margin_ranking_loss: + +margin_ranking_loss +------------------- + +.. autofunction:: paddle.nn.functional.loss.margin_ranking_loss + :noindex: + diff --git a/doc/fluid/api/nn/layer/loss/MarginRankingLoss.rst b/doc/fluid/api/nn/layer/loss/MarginRankingLoss.rst new file mode 100644 index 0000000000000000000000000000000000000000..d69d1deff5defab24b2f12ea877c3a208a801478 --- /dev/null +++ b/doc/fluid/api/nn/layer/loss/MarginRankingLoss.rst @@ -0,0 +1,13 @@ +.. THIS FILE IS GENERATED BY `gen_doc.{py|sh}` + !DO NOT EDIT THIS FILE MANUALLY! + +.. _api_nn_layer_loss_MarginRankingLoss: + +MarginRankingLoss +----------------- + +.. autoclass:: paddle.nn.layer.loss.MarginRankingLoss + :members: + :inherited-members: + :noindex: + diff --git a/doc/fluid/api/nn/margin_rank_loss.rst b/doc/fluid/api/nn/margin_rank_loss.rst deleted file mode 100644 index 1ef924d8728dce215f20372bd4f6ea4a87a27874..0000000000000000000000000000000000000000 --- a/doc/fluid/api/nn/margin_rank_loss.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _api_nn_margin_rank_loss: - -margin_rank_loss -------------------------------- -:doc_source: paddle.fluid.layers.margin_rank_loss - - diff --git a/doc/fluid/api_cn/nn_cn.rst b/doc/fluid/api_cn/nn_cn.rst index a49cb9f5f9ded051a8bf14fe03bc22bd1aff4adc..b42ec565b8cdb613db774a5630cfa6e7575d850e 100644 --- a/doc/fluid/api_cn/nn_cn.rst +++ b/doc/fluid/api_cn/nn_cn.rst @@ -95,7 +95,7 @@ paddle.nn nn_cn/logsigmoid_cn.rst nn_cn/log_loss_cn.rst nn_cn/lrn_cn.rst - nn_cn/margin_rank_loss_cn.rst + nn_cn/margin_ranking_loss_cn.rst nn_cn/maxout_cn.rst nn_cn/mse_loss_cn.rst nn_cn/multiclass_nms_cn.rst @@ -162,3 +162,6 @@ paddle.nn nn_cn/while_loop_cn.rst nn_cn/yolov3_loss_cn.rst nn_cn/yolo_box_cn.rst + nn_cn/loss_cn/MarginRankingLoss_cn.rst + nn_cn/functional_cn/margin_ranking_loss_cn.rst + diff --git a/doc/fluid/api_cn/nn_cn/functional_cn.rst b/doc/fluid/api_cn/nn_cn/functional_cn.rst index 130659e92b66bbd9105f0ccfb51b580acaa3763e..b314bbe0ef25f09151745db0d91bdc8404eb540f 100644 --- a/doc/fluid/api_cn/nn_cn/functional_cn.rst +++ b/doc/fluid/api_cn/nn_cn/functional_cn.rst @@ -10,3 +10,4 @@ functional functional_cn/l1_loss_cn.rst functional_cn/nll_loss_cn.rst + functional_cn/margin_ranking_loss_cn.rst diff --git a/doc/fluid/api_cn/nn_cn/functional_cn/margin_ranking_loss_cn.rst b/doc/fluid/api_cn/nn_cn/functional_cn/margin_ranking_loss_cn.rst new file mode 100644 index 0000000000000000000000000000000000000000..edc1d7c7d1ffe659255e1f92a6a43e0d78af1bcf --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/functional_cn/margin_ranking_loss_cn.rst @@ -0,0 +1,52 @@ +.. _cn_api_nn_cn_margin_ranking_loss: + +margin_ranking_loss +------------------------------- + +.. py:function:: paddle.nn.functional.margin_ranking_loss(input, other, label, margin=0.0, reduction='mean', name=None) + +该算子计算输入input,other 和 标签label间的 `margin rank loss` 损失。该损失函数的数学计算公式如下: + + .. math:: + margin\_rank\_loss = max(0, -label * (input - other) + margin) + +当 `reduction` 设置为 ``'mean'`` 时, + + .. math:: + Out = MEAN(margin\_rank\_loss) + +当 `reduction` 设置为 ``'sum'`` 时, + + .. math:: + Out = SUM(margin\_rank\_loss) + +当 `reduction` 设置为 ``'none'`` 时,直接返回最原始的 `margin_rank_loss` 。 + +参数 +:::::::: + - **input** (Tensor):第一个输入的 `Tensor` ,数据类型为:float32、float64。 + - **other** (Tensor):第二个输入的 `Tensor` ,数据类型为:float32、float64。 + - **label** (Tensor):训练数据的标签,数据类型为:float32, float64。 + - **margin** (float,可选): - 用于加和的margin值,默认值为0。 + - **reduction** (string,可选): - 指定应用于输出结果的计算方式,可选值有: ``'none'`` 、 ``'mean'`` 、 ``'sum'`` 。如果设置为 ``'none'`` ,则直接返回 最原始的 ``margin_rank_loss`` 。如果设置为 ``'sum'`` ,则返回 ``margin_rank_loss`` 的总和。如果设置为 ``'mean'`` ,则返回 ``margin_rank_loss`` 的平均值。默认值为 ``'none'`` 。 + - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +返回 +:::::::: +Tensor, 如果 :attr:`reduction` 为 ``'sum'`` 或者是 ``'mean'`` ,则形状为 :math:`[1]` ,否则shape和输入 `input` 保持一致 。数据类型与 ``input``、 ``other`` 相同。 + +代码示例 +:::::::: + +.. code-block:: python + + import numpy as np + import paddle + + paddle.disable_static() + + input = paddle.to_variable(np.array([[1, 2], [3, 4]]).astype('float32')) + other = paddle.to_variable(np.array([[2, 1], [2, 4]]).astype('float32')) + label = paddle.to_variable(np.array([[1, -1], [-1, -1]]).astype('float32')) + loss = paddle.nn.functional.margin_ranking_loss(input, other, label) + print(loss.numpy()) # [0.75] diff --git a/doc/fluid/api_cn/nn_cn/loss_cn.rst b/doc/fluid/api_cn/nn_cn/loss_cn.rst index 3c4c2c33fbb37343f91713b25bba8af86f8943a5..c463d12c463c9a0b686687a3cf09f4b66b44759a 100644 --- a/doc/fluid/api_cn/nn_cn/loss_cn.rst +++ b/doc/fluid/api_cn/nn_cn/loss_cn.rst @@ -11,5 +11,6 @@ loss loss_cn/BCELoss_cn.rst loss_cn/CrossEntropyLoss_cn.rst loss_cn/L1Loss_cn.rst + loss_cn/MarginRankingLoss_cn.rst loss_cn/MSELoss_cn.rst loss_cn/NLLLoss_cn.rst diff --git a/doc/fluid/api_cn/nn_cn/loss_cn/MarginRankingLoss_cn.rst b/doc/fluid/api_cn/nn_cn/loss_cn/MarginRankingLoss_cn.rst new file mode 100644 index 0000000000000000000000000000000000000000..ab7cd2175d25e3f3e724c3417e1b02db2158a895 --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/loss_cn/MarginRankingLoss_cn.rst @@ -0,0 +1,60 @@ +.. _cn_api_nn_loss_MarginRankingLoss: + +MarginRankingLoss +------------------------------- + +.. py:class:: paddle.nn.loss.MarginRankingLoss(margin=0.0, reduction='mean', name=None) + +该接口用于创建一个 ``MarginRankingLoss`` 的可调用类,计算输入input,other 和 标签label间的 `margin rank loss` 损失。 + +该损失函数的数学计算公式如下: + + .. math:: + margin\_rank\_loss = max(0, -label * (input - other) + margin) + +当 `reduction` 设置为 ``'mean'`` 时, + + .. math:: + Out = MEAN(margin\_rank\_loss) + +当 `reduction` 设置为 ``'sum'`` 时, + + .. math:: + Out = SUM(margin\_rank\_loss) + +当 `reduction` 设置为 ``'none'`` 时,直接返回最原始的 `margin_rank_loss` 。 + +参数 +:::::::: + - **margin** (float,可选): - 用于加和的margin值,默认值为0。 + - **reduction** (string,可选): - 指定应用于输出结果的计算方式,可选值有: ``'none'`` 、 ``'mean'`` 、 ``'sum'`` 。如果设置为 ``'none'`` ,则直接返回 最原始的 ``margin_rank_loss`` 。如果设置为 ``'sum'`` ,则返回 ``margin_rank_loss`` 的总和。如果设置为 ``'mean'`` ,则返回 ``margin_rank_loss`` 的平均值。默认值为 ``'none'`` 。 + - **name** (str,可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +形状 +:::::::: + - **input** - N-D Tensor, 维度是[N,*] 其中N 是batch size,`*` 是任意数量的额外维度,数据类型为float32或float64。 + - **other** - 与 ``input`` 的形状、数据类型相同。 + - **label** - 与 ``input`` 的形状、数据类型相同。 + - **output** - 如果 :attr:`reduction` 为 ``'sum'`` 或者是 ``'mean'`` ,则形状为 :math:`[1]` ,否则shape和输入 `input` 保持一致 。数据类型与 ``input``、 ``other`` 相同。 + +返回 +:::::::: +返回计算MarginRankingLoss的可调用对象。 + +代码示例 +:::::::: + +.. code-block:: python + + + import numpy as np + import paddle + + paddle.disable_static() + + input = paddle.to_variable(np.array([[1, 2], [3, 4]]).astype("float32")) + other = paddle.to_variable(np.array([[2, 1], [2, 4]]).astype("float32")) + label = paddle.to_variable(np.array([[1, -1], [-1, -1]]).astype("float32")) + margin_rank_loss = paddle.nn.MarginRankingLoss() + loss = margin_rank_loss(input, other, label) + print(loss.numpy()) # [0.75] diff --git a/doc/fluid/api_cn/nn_cn/margin_rank_loss_cn.rst b/doc/fluid/api_cn/nn_cn/margin_rank_loss_cn.rst deleted file mode 100644 index 9669e8b1431eee9df9fcfe8850ed67894390f053..0000000000000000000000000000000000000000 --- a/doc/fluid/api_cn/nn_cn/margin_rank_loss_cn.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _cn_api_nn_cn_margin_rank_loss: - -margin_rank_loss -------------------------------- -:doc_source: paddle.fluid.layers.margin_rank_loss - -