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
  nbins: The number of equidistance bins to allocate between `bins_lower_bound` and `bins_upper_bound`. Default value is 100.
  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.
docstr: Takes input x as the new parameters to specify the bin
  probabilities: logits for the base distribution, and xi and beta for
  each tail distribution.
docstr_tok: ["Takes","input","x","as","the","new","parameters","to","specify","the","bin","probabilities",":","logits","for","the","base","distribution",",","and","xi","and","beta","for","each","tail","distribution","."]
code: def forward(self, x):
      """Takes input x as the new parameters to specify the bin
      probabilities: logits for the base distribution, and xi and beta for
      each tail distribution."""
      if len(x.shape) > 1:
          # If mini-batching
          self.logits = x[:, : self.nbins]
  
          self.lower_xi_batch = F.softplus(x[:, self.nbins])
          self.lower_beta_batch = F.softplus(x[:, self.nbins + 1])
  
          self.upper_xi_batch = F.softplus(x[:, self.nbins + 2])
          self.upper_beta_batch = F.softplus(x[:, self.nbins + 3])
      else:
          # If not mini-batching
          self.logits = x[: self.nbins]
  
          self.lower_xi_batch = F.softplus(x[self.nbins])
          self.lower_beta_batch = F.softplus(x[self.nbins + 1])
  
          self.upper_xi_batch = F.softplus(x[self.nbins + 2])
          self.upper_beta_batch = F.softplus(x[self.nbins + 3])
  
          self.upper_gen_pareto.xi = self.upper_xi_batch
          self.upper_gen_pareto.beta = self.upper_beta_batch
          self.lower_gen_pareto.xi = self.lower_xi_batch
          self.lower_gen_pareto.beta = self.lower_beta_batch
  
      return self.logits
  
imports: from typing import Optional
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.optim
  from .genpareto import GenPareto
label_desc: Use image node_id 3 for calling the SplicedBinnedPareto obj's underlying member method code with example usage: obj.forward(x) and returns: self