class_docstr: Binned uniforms distribution.
  
  Args:
      bins_lower_bound (float): The lower bound of the bin edges
      bins_upper_bound (float): The upper bound of the bin edges
      numb_bins (int): The number of equidistance bins to allocate between
          `bins_lower_bound` and `bins_upper_bound`. Default value is 100.
      logits (tensor): the logits defining the probability of each bins.
          These are softmaxed. The tensor is of shape (*batch_shape,)
      validate_args (bool) from the pytorch Distribution class
class_docstr_tok: ["Binned","uniforms","distribution",".","Args",":","bins_lower_bound","(","float",")",":","The","lower","bound","of","the","bin","edges","bins_upper_bound","(","float",")",":","The","upper","bound","of","the","bin","edges","numb_bins","(","int",")",":","The","number","of","equidistance","bins","to","allocate","between","`","bins_lower_bound","`","and","`","bins_upper_bound","`",".","Default","value","is","100.","logits","(","tensor",")",":","the","logits","defining","the","probability","of","each","bins",".","These","are","softmaxed",".","The","tensor","is","of","shape","(","*","batch_shape",",",")","validate_args","(","bool",")","from","the","pytorch","Distribution","class"]
docstr: Log probability for a tensor of datapoints `x`.
  'x' is to have shape (*batch_shape)
docstr_tok: ["Log","probability","for","a","tensor","of","datapoints","`","x","`",".","'","x","'","is","to","have","shape","(","*","batch_shape",")"]
code: def log_binned_p(self, x):
      """
      Log probability for a tensor of datapoints `x`.
      'x' is to have shape (*batch_shape)
  
      """
      one_hot_bin_indicator = self.get_one_hot_bin_indicator(
          x, in_float=True
      )
      # one_hot_bin_indicator.shape: (*batch_shape, numb_bins)
      logp = (one_hot_bin_indicator * self.log_bins_prob).sum(dim=-1)
      # logp.shape: (*batch_shape)
      return logp
  
imports: from typing import Dict, Optional, Tuple, cast
  import torch
  import torch.nn.functional
  from torch.distributions import Distribution, constraints
  from gluonts.core.component import validated
  from .distribution_output import DistributionOutput
label_desc: Use image node_id 8 for calling the BinnedUniforms obj's underlying member method code with example usage: obj.log_binned_p(x) and returns: logp