class_docstr: Binned univariate distribution designed as an nn.Module
  
  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.
  smoothing_indicator: The method of smoothing to perform on the bin probabilities
code: def log_bins_prob(self):
      if self.idx is None:
          log_bins_prob = F.log_softmax(self.logits, dim=0).sub(
              torch.log(self.bin_widths)
          )
      else:
          log_bins_prob = F.log_softmax(
              self.logits[self.idx, :], dim=0
          ).sub(torch.log(self.bin_widths))
      return log_bins_prob.float()
  
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 4 for calling the Binned obj's underlying member method code with example usage: obj.log_bins_prob() and returns: log_bins_prob