Skip to content

Commit 59635ad

Browse files
authored
Update PoissonNLLLoss document. ;test=docs_preview (#5675)
* Update PoissonNLLoss document. ;test=docs_preview * Update API label and fix parsing error * Modify doc label of poisson_nll_loss * Fix poisson_nll_loss issues * Fix doc format errors * Add support for float16 and bfloat16
1 parent 77ab22f commit 59635ad

File tree

4 files changed

+101
-0
lines changed

4 files changed

+101
-0
lines changed

docs/api/api_label

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -819,6 +819,7 @@ paddle.nn.LSTM .. _api_paddle_nn_LSTM:
819819
paddle.nn.Pad1D .. _api_paddle_nn_Pad1D:
820820
paddle.nn.Hardswish .. _api_paddle_nn_Hardswish:
821821
paddle.nn.NLLLoss .. _api_paddle_nn_NLLLoss:
822+
paddle.nn.PoissonNLLLoss .. _api_paddle_nn_PoissonNLLLoss:
822823
paddle.nn.AlphaDropout .. _api_paddle_nn_AlphaDropout:
823824
paddle.nn.LSTMCell .. _api_paddle_nn_LSTMCell:
824825
paddle.nn.Pad3D .. _api_paddle_nn_Pad3D:
@@ -977,6 +978,7 @@ paddle.nn.functional.relu6 .. _api_paddle_nn_functional_relu6:
977978
paddle.nn.functional.adaptive_avg_pool1d .. _api_paddle_nn_functional_adaptive_avg_pool1d:
978979
paddle.nn.functional.prelu .. _api_paddle_nn_functional_prelu:
979980
paddle.nn.functional.hardshrink .. _api_paddle_nn_functional_hardshrink:
981+
paddle.nn.functional.poisson_nll_loss .. _api_paddle_nn_functional_poisson_nll_loss:
980982
paddle.nn.functional.kl_div .. _api_paddle_nn_functional_kl_div:
981983
paddle.nn.functional.relu_ .. _api_paddle_nn_functional_relu_:
982984
paddle.nn.functional.label_smooth .. _api_paddle_nn_functional_label_smooth:

docs/api/paddle/nn/Overview_cn.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ Loss 层
258258
" :ref:`paddle.nn.MarginRankingLoss <cn_api_nn_loss_MarginRankingLoss>` ", "MarginRankingLoss 层"
259259
" :ref:`paddle.nn.MSELoss <cn_api_paddle_nn_MSELoss>` ", "均方差误差损失层"
260260
" :ref:`paddle.nn.NLLLoss <cn_api_nn_loss_NLLLoss>` ", "NLLLoss 层"
261+
" :ref:`paddle.nn.PoissonNLLLoss <cn_api_paddle_nn_PoissonNLLLoss>`", "PoissonNLLLoss 层"
261262
" :ref:`paddle.nn.SmoothL1Loss <cn_api_paddle_nn_SmoothL1Loss>` ", "平滑 L1 损失层"
262263
" :ref:`paddle.nn.SoftMarginLoss <cn_api_paddle_nn_SoftMarginLoss>` ", "SoftMarginLoss 层"
263264
" :ref:`paddle.nn.TripletMarginLoss <cn_api_paddle_nn_TripletMarginLoss>` ", "TripletMarginLoss 层"
@@ -476,6 +477,7 @@ Embedding 相关函数
476477
" :ref:`paddle.nn.functional.dice_loss <cn_api_fluid_layers_dice_loss>` ", "用于比较预测结果跟标签之间的相似度"
477478
" :ref:`paddle.nn.functional.hsigmoid_loss <cn_api_nn_functional_hsigmoid_loss>` ", "层次 sigmoid 损失函数"
478479
" :ref:`paddle.nn.functional.l1_loss <cn_paddle_nn_functional_loss_l1>` ", "用于计算 L1 损失"
480+
" :ref:`paddle.nn.functional.poisson_nll_loss <cn_api_paddle_nn_functional_poisson_nll_loss>` ", "用于计算泊松分布的负对数似然损失"
479481
" :ref:`paddle.nn.functional.kl_div <cn_paddle_nn_functional_loss_kl_div>` ", "用于计算 KL 散度损失"
480482
" :ref:`paddle.nn.functional.log_loss <cn_api_fluid_layers_log_loss>` ", "用于计算负对数损失"
481483
" :ref:`paddle.nn.functional.margin_ranking_loss <cn_api_nn_cn_margin_ranking_loss>` ", "用于计算 margin rank loss 损失"
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
.. _cn_api_paddle_nn_PoissonNLLLoss:
2+
3+
PoissonNLLLoss
4+
-------------------------------
5+
6+
.. py:class:: paddle.nn.PoissonNLLLoss(log_input=False, full=False, eps=1e-8, reduction='mean', name=None)
7+
8+
该接口可创建一个 PoissonNLLLoss 可调用类,计算输入 :attr:`input` 和标签 :attr:`label` 间的 `Poisson negative log likelihood loss` 损失。该 loss 适用于真实标签服从于泊松分布时,即
9+
10+
.. math::
11+
\text{label} \sim \mathrm{Poisson}(\text{input})
12+
13+
该损失函数的数学计算公式如下:
14+
当 `log_input` 设置为 `True` 时,损失函数的数学计算公式为:
15+
16+
.. math::
17+
\text{loss}(\text{input}, \text{label}) = \text{input} - \text{label} * \log(\text{input}+\text{eps}) + \log(\text{label!})
18+
19+
其中 `eps` 是 ``True`` 时使用的常数小量,使得 loss 计算过程中不会导致对 0 求对数情况的出现。
20+
当 `log_input` 设置为 `False` 时,损失函数的数学计算公式为:
21+
22+
.. math::
23+
\text{loss}(\text{input}, \text{label}) = \exp(\text{input}) - \text{label} * \text{input} + \log(\text{label!})
24+
25+
损失函数中的最后一项可以使用 Stirling 公式近似,该近似项的计算公式为
26+
27+
.. math::
28+
\text{label} * \log(\text{label}) - \text{label} + 0.5 * \log(2 * \pi * \text{label})
29+
30+
将 label 和每个元素都为 1 的同样形状的张量比较,对 label 值超过 1 的索引处考虑此项近似,对 label 的值小于等于 1 的索引处设置此项近似为 0 进行遮盖。
31+
32+
参数
33+
:::::::::
34+
- **log_input** (bool,可选) - 输入是否为对数函数映射后结果,默认值为 ``True``。
35+
- **full** (bool,可选) - 是否在损失计算中包括 Stirling 近似项。默认值为 ``False``。
36+
- **eps** (float,可选) - 在 :attr:`log_input` 为 ``True`` 时使用的常数小量。默认值为 1e-8。
37+
- **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有 ``none``、``mean`` 和 ``sum``。默认为 ``mean``,计算 ``mini-batch`` loss 均值。设置为 ``sum`` 时,计算 ``mini-batch`` loss 的总和。设置为 ``none`` 时,则返回 loss Tensor。默认值下为 ``mean``。
38+
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为 None。
39+
40+
形状
41+
:::::::::
42+
- **input** (Tensor) - 输入 `Tensor`,其形状为 :math:`[N, *]` ,其中 :math:`*` 表示任何数量的额外维度。数据类型为 float16, bfloat16, float32 或 float64。
43+
- **label** (Tensor) - 标签 :attr:`Tensor`, 形状、数据类型和 :attr:`input` 相同。
44+
45+
返回
46+
:::::::::
47+
48+
- **output** (Tensor) - 输入 `input` 和 `label` 间的 `Poisson negative log likelihood loss` 损失。如果 `reduction` 为 `'none'`,则输出 Loss 形状为 `[N, *]`。如果 `reduction` 为 `'sum'` 或者 `'mean'`,则输出 Loss 形状为 `'[1]'` 。
49+
50+
代码示例
51+
:::::::::
52+
53+
COPY-FROM: paddle.nn.PoissonNLLLoss
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
.. _cn_api_paddle_nn_functional_poisson_nll_loss:
2+
3+
poisson_nll_loss
4+
-------------------------------
5+
.. py:function:: paddle.nn.functional.poisson_nll_loss(input, label, log_input=False, full=False, eps=1e-8, reduction='mean', name=None)
6+
7+
返回 `poisson negative log likelihood`。可在 :ref:`cn_api_paddle_nn_PoissonNLLLoss` 查看详情。
8+
9+
参数
10+
:::::::::
11+
- **input** (Tensor) - 输入 :attr:`Tensor`,对应泊松分布的期望,其形状为 :math:`[N, *]`,其中 :math:`*` 表示任何数量的额外维度。数据类型为 float16,bfloat16,float32 或 float64。
12+
- **label** (Tensor) - 标签 :attr:`Tensor`, 形状、数据类型和 :attr:`input` 相同。
13+
- **log_input** (bool,可选) - 输入是否为对数函数映射后结果,如果为 ``True``,则 loss 当中第一项的计算公式为
14+
15+
.. math::
16+
\text{input} - \text{label} * \log(\text{input}+\text{eps})
17+
18+
其中 :attr:`eps` 为数值稳定使用的常数小量。
19+
如果为 ``False``,则 loss 的计算公式为
20+
21+
.. math::
22+
\exp(\text{input}) - \text{label} * \text{input}
23+
24+
默认值为 ``True``。
25+
26+
- **full** (bool,可选) - 是否在损失计算中包括 Stirling 近似项。该近似项的计算公式为
27+
28+
.. math::
29+
\text{label} * \log(\text{label}) - \text{label} + 0.5 * \log(2 * \pi * \text{label})
30+
31+
默认值为 ``False``。
32+
33+
- **eps** (float,可选) - 在 :attr:`log_input` 为 ``True`` 时使用的常数小量,使得 loss 计算过程中不会导致对 0 求对数情况的出现。默认值为 1e-8。
34+
- **reduction** (str,可选) - 指定应用于输出结果的计算方式,可选值有 ``none``、``mean`` 和 ``sum``。默认为 ``mean``,计算 ``mini-batch`` loss 均值。设置为 ``sum`` 时,计算 ``mini-batch`` loss 的总和。设置为 ``none`` 时,则返回 loss Tensor。默认值下为 ``mean``。
35+
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。
36+
37+
返回
38+
:::::::::
39+
`Tensor`,返回存储表示 `poisson negative log likelihood loss` 的损失值。
40+
41+
代码示例
42+
:::::::::
43+
44+
COPY-FROM: paddle.nn.functional.poisson_nll_loss

0 commit comments

Comments
 (0)