code: def poisson_nll_loss(
      input,
      target,
      log_input=True,
      full=False,
      size_average=None,
      eps=1e-8,
      reduce=None,
      reduction="mean",
  ):
      input, target = torch_frontend.promote_types_of_torch_inputs(
          input, target
      )
      if log_input:
          loss = ivy.exp(input) - target * input
      else:
          loss = input - target * ivy.log(input + eps)
      if full:
          approximation = (
              target * ivy.log(target)
              - target
              + 0.5 * ivy.log(2 * ivy.pi * target)
          )
          loss += ivy.where(target > 1, approximation, 0)
  
      reduction = _get_reduction(reduction, size_average, reduce)
      return reduction(loss).astype(input.dtype)
  
imports: import ivy
  import ivy.functional.frontends.torch
  from ivy.functional.frontends.torch.func_wrapper import to_ivy_arrays_and_back
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
label_desc: Use image node_id 23 for calling a global function with example usage: poisson_nll_loss(input, target, log_input, full, size_average, eps, reduce, reduction) and returns: reduction