class_docstr: Spliced Binned-Pareto univariate distribution.
  
  Arguments
  ----------
      bins_lower_bound: The lower bound of the bin edges
      bins_upper_bound: The upper bound of the bin edges
      numb_bins: The number of equidistance bins to allocate between
          `bins_lower_bound` and `bins_upper_bound`. Default value is 100.
      tail_percentile_gen_pareto: The percentile of the distribution that is
          each tail. Default value is 0.05. NB: This symmetric percentile
          can still represent asymmetric upper and lower tails.
class_docstr_tok: ["Spliced","Binned-Pareto","univariate","distribution",".","Arguments","--","--","--","--","--","bins_lower_bound",":","The","lower","bound","of","the","bin","edges","bins_upper_bound",":","The","upper","bound","of","the","bin","edges","numb_bins",":","The","number","of","equidistance","bins","to","allocate","between","`","bins_lower_bound","`","and","`","bins_upper_bound","`",".","Default","value","is","100.","tail_percentile_gen_pareto",":","The","percentile","of","the","distribution","that","is","each","tail",".","Default","value","is","0.05",".","NB",":","This","symmetric","percentile","can","still","represent","asymmetric","upper","and","lower","tails","."]
code: def __init__(
      self,
      bins_lower_bound: float,
      bins_upper_bound: float,
      logits: torch.Tensor,
      upper_gp_xi: torch.Tensor,
      upper_gp_beta: torch.Tensor,
      lower_gp_xi: torch.Tensor,
      lower_gp_beta: torch.Tensor,
      numb_bins: int = 100,
      tail_percentile_gen_pareto: float = 0.05,
      validate_args=None,
  ):
      assert (
          tail_percentile_gen_pareto > 0
          and tail_percentile_gen_pareto < 0.5
      ), "tail_percentile_gen_pareto must be between (0,1)"
      self.tail_percentile_gen_pareto = torch.tensor(
          tail_percentile_gen_pareto
      )
  
      device = logits.device
      self.tail_percentile_gen_pareto = (
          self.tail_percentile_gen_pareto.to(device)
      )
  
      self.lower_gp_xi = lower_gp_xi
      self.lower_gp_beta = lower_gp_beta
      self.lower_gen_pareto = GeneralizedPareto(
          self.lower_gp_xi, self.lower_gp_beta
      )
  
      self.upper_gp_xi = upper_gp_xi
      self.upper_gp_beta = upper_gp_beta
      self.upper_gen_pareto = GeneralizedPareto(
          self.upper_gp_xi, self.upper_gp_beta
      )
  
      setattr(self, "lower_gp_xi", self.lower_gp_xi)
      setattr(self, "lower_gp_beta", self.lower_gp_beta)
      setattr(self, "upper_gp_xi", self.upper_gp_xi)
      setattr(self, "upper_gp_beta", self.upper_gp_beta)
  
      super(SplicedBinnedPareto, self).__init__(
          bins_lower_bound,
          bins_upper_bound,
          logits,
          numb_bins,
          validate_args,
      )
  
file_path: gluonts/src/gluonts/torch/distributions/spliced_binned_pareto.py
imports: from typing import Dict, Optional, Tuple, cast
  import torch
  from torch.distributions import constraints
  from gluonts.core.component import validated
  from gluonts.torch.distributions import BinnedUniforms, GeneralizedPareto
  from .distribution_output import DistributionOutput
label_desc: Use image node_id 1 to create a new SplicedBinnedPareto object from inherited base classes: BinnedUniforms with example: obj = SplicedBinnedPareto(bins_lower_bound, bins_upper_bound, logits, upper_gp_xi, upper_gp_beta, lower_gp_xi, lower_gp_beta, numb_bins, tail_percentile_gen_pareto, validate_args)