class_docstr: Normal distribution loss.
class_docstr_tok: ["Normal","distribution","loss","."]
code: def map_x_to_distribution(
      self, x: torch.Tensor
  ) -> distributions.Normal:
      distr = self.distribution_class(loc=x[..., 2], scale=x[..., 3])
      scaler = distributions.AffineTransform(
          loc=x[..., 0], scale=x[..., 1]
      )
      if self._transformation is None:
          return distributions.TransformedDistribution(distr, [scaler])
      else:
          return distributions.TransformedDistribution(
              distr,
              [
                  scaler,
                  TorchNormalizer.get_transform(self._transformation)[
                      "inverse_torch"
                  ],
              ],
          )
  
imports: from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import numpy
  from sklearn.base import BaseEstimator
  import torch
  from torch import distributions, nn
  import torch.nn.functional
  from pytorch_forecasting.data.encoders import TorchNormalizer, softplus_inv
  from pytorch_forecasting.metrics.base_metrics import DistributionLoss, MultivariateDistributionLoss
label_desc: Use image node_id 1 for calling the NormalDistributionLoss obj's underlying member method code with example usage: obj.map_x_to_distribution(x) and returns: distributions, distributions