class_docstr: Poisson loss for count data.
  
  The loss will take the exponential of the network output before it is returned as prediction.
  Target normalizer should therefore have no "reverse" transformation, e.g.
  for the :py:class:`~data.timeseries.TimeSeriesDataSet` initialization, one could use:
  
  .. code-block:: python
  
      from pytorch_forecasting import TimeSeriesDataSet, EncoderNormalizer
  
      dataset = TimeSeriesDataSet(
          target_normalizer=EncoderNormalizer(transformation=dict(forward=torch.log1p))
      )
  
  Note that in this example, the data is log1p-transformed before normalized but not re-transformed.
  The PoissonLoss applies this "exp"-re-transformation on the network output after it has been de-normalized.
  The result is the model prediction.
class_docstr_tok: ["Poisson","loss","for","count","data",".","The","loss","will","take","the","exponential","of","the","network","output","before","it","is","returned","as","prediction",".","Target","normalizer","should","therefore","have","no","``","reverse","''","transformation",",","e.g",".","for","the",":","py",":","class",":","`","~data.timeseries.TimeSeriesDataSet","`","initialization",",","one","could","use",":","..","code-block",":",":","python","from","pytorch_forecasting","import","TimeSeriesDataSet",",","EncoderNormalizer","dataset","=","TimeSeriesDataSet","(","target_normalizer=EncoderNormalizer","(","transformation=dict","(","forward=torch.log1p",")",")",")","Note","that","in","this","example",",","the","data","is","log1p-transformed","before","normalized","but","not","re-transformed",".","The","PoissonLoss","applies","this","``","exp","''","-re-transformation","on","the","network","output","after","it","has","been","de-normalized",".","The","result","is","the","model","prediction","."]
code: def loss(
      self, y_pred: Dict[str, torch.Tensor], target: torch.Tensor
  ) -> torch.Tensor:
      return F.poisson_nll_loss(
          super().to_prediction(y_pred),
          target,
          log_input=True,
          full=False,
          eps=1e-6,
          reduction="none",
      )
  
imports: from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import scipy.stats
  import torch
  import torch.nn.functional
  from torch.nn.utils import rnn
  from pytorch_forecasting.metrics.base_metrics import MultiHorizonMetric
  from pytorch_forecasting.utils import create_mask, unpack_sequence, unsqueeze_like
label_desc: Use image node_id 1 for calling the PoissonLoss obj's underlying member method code with example usage: obj.loss(y_pred, target) and returns: F