poisson_nll_loss

paddle.nn.functional. poisson_nll_loss ( input: Tensor, label: Tensor, log_input: bool = True, full: bool = False, epsilon: float = 1e-08, reduction: _ReduceMode = 'mean', name: str | None = None ) Tensor [source]

Poisson negative log likelihood loss. See more detail in PoissonNLLLoss .

Parameters
  • input (Tensor) – Input tensor, expectation of underlying Poisson distribution. The shape of input tensor should be (N, *) or (*) where (*) denotes any number of extra dimensions. It’s data type should be float16, bfloat16, float32, float64.

  • label (Tensor) – Label tensor, random sampled from Poisson distribution labelPoisson(input). The shape of input tensor should be (N, *) or (*), same shape as the input tensor. It’s data type should be float16, bfloat16, float32, float64.

  • log_input (bool, optional) – Whether to the treat input tensor as log input. If True the loss is computed as, exp(input)labelinput . If False then loss is inputlabellog(input+epsilon) . Default: True.

  • full (bool, optional) – Whether to compute full loss. If True, the Stirling approximation term is added. If False, the Stirling approximation is dropped. Default: False.

  • epsilon (float, optional) – A small value to avoid evaluation of log(0) when log_input=False. epsilon > 0. Default: 1e-8.

  • reduction (str, optional) – Indicate how to reduce the loss, the candidates are 'none' | 'mean' | 'sum'. If reduction is 'mean', the reduced mean loss is returned; if reduction is 'sum', the reduced sum loss is returned; if reduction is 'none', no reduction will be applied. Default is 'mean'.

  • name (str|None, optional) – Name for the operation (optional, default is None). For more information, please refer to Name.

Examples

>>> import paddle
>>> import paddle.nn.functional as F
>>> paddle.seed(2023)

>>> input = paddle.randn([5, 2], dtype=paddle.float32)
>>> label = paddle.randn([5, 2], dtype=paddle.float32)
>>> loss = F.poisson_nll_loss(input, label, log_input=True, reduction='none')
>>> print(loss)
Tensor(shape=[5, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
       [[ 1.09998012,  3.68829036],
        [ 1.95291090,  0.69603068],
        [-0.39289063, -2.03713036],
        [ 4.52518702,  1.28625548],
        [ 3.94454789,  0.53521496]])
>>> loss = F.poisson_nll_loss(input, label, reduction='mean')
>>> print(loss)
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
       1.52983975)