nn_poisson_nll_loss function

Poisson NLL loss

Poisson NLL loss

Negative log likelihood loss with Poisson distribution of target. The loss can be described as:

nn_poisson_nll_loss( log_input = TRUE, full = FALSE, eps = 1e-08, reduction = "mean" )

Arguments

  • log_input: (bool, optional): if TRUE the loss is computed as exp(\mboxinput)\mboxtarget\mboxinput\exp(\mbox{input}) - \mbox{target}*\mbox{input}, if FALSE the loss is \mboxinput\mboxtargetlog(\mboxinput+\mboxeps)\mbox{input} - \mbox{target}*\log(\mbox{input}+\mbox{eps}).
  • full: (bool, optional): whether to compute full loss, i. e. to add the Stirling approximation term \mboxtargetlog(\mboxtarget)\mboxtarget+0.5log(2π\mboxtarget)\mbox{target}*\log(\mbox{target}) - \mbox{target} + 0.5 * \log(2\pi\mbox{target}).
  • eps: (float, optional): Small value to avoid evaluation of log(0)\log(0) when log_input = FALSE. Default: 1e-8
  • reduction: (string, optional): Specifies the reduction to apply to the output: 'none' | 'mean' | 'sum'. 'none': no reduction will be applied, 'mean': the sum of the output will be divided by the number of elements in the output, 'sum': the output will be summed.

Details

\mboxtargetPoisson(\mboxinput)\mboxloss(\mboxinput,\mboxtarget)=\mboxinput\mboxtargetlog(\mboxinput)+log(\mboxtarget!) \mbox{target} \sim \mathrm{Poisson}(\mbox{input})\mbox{loss}(\mbox{input}, \mbox{target}) = \mbox{input} - \mbox{target} * \log(\mbox{input})+ \log(\mbox{target!})

The last term can be omitted or approximated with Stirling formula. The approximation is used for target values more than 1. For targets less or equal to 1 zeros are added to the loss.

Shape

  • Input: (N,)(N, *) where * means, any number of additional dimensions
  • Target: (N,)(N, *), same shape as the input
  • Output: scalar by default. If reduction is 'none', then (N,)(N, *), the same shape as the input

Examples

if (torch_is_installed()) { loss <- nn_poisson_nll_loss() log_input <- torch_randn(5, 2, requires_grad = TRUE) target <- torch_randn(5, 2) output <- loss(log_input, target) output$backward() }
  • Maintainer: Daniel Falbel
  • License: MIT + file LICENSE
  • Last published: 2025-02-14