class_docstr: Creates a continuous Bernoulli distribution parameterized by :attr:`probs`
  or :attr:`logits` (but not both).
  
  The distribution is supported in [0, 1] and parameterized by 'probs' (in
  (0,1)) or 'logits' (real-valued). Note that, unlike the Bernoulli, 'probs'
  does not correspond to a probability and 'logits' does not correspond to
  log-odds, but the same names are used due to the similarity with the
  Bernoulli. See [1] for more details.
  
  Example::
  
      >>> # xdoctest: +IGNORE_WANT("non-deterministic")
      >>> m = ContinuousBernoulli(torch.tensor([0.3]))
      >>> m.sample()
      tensor([ 0.2538])
  
  Args:
      probs (Number, Tensor): (0,1) valued parameters
      logits (Number, Tensor): real valued parameters whose sigmoid matches 'probs'
  
  [1] The continuous Bernoulli: fixing a pervasive error in variational
  autoencoders, Loaiza-Ganem G and Cunningham JP, NeurIPS 2019.
  https://arxiv.org/abs/1907.06845
code: def icdf(self, value):
      cut_probs = self._cut_probs()
      return torch.where(
          self._outside_unstable_region(),
          (
              torch.log1p(-cut_probs + value * (2.0 * cut_probs - 1.0))
              - torch.log1p(-cut_probs)
          )
          / (torch.log(cut_probs) - torch.log1p(-cut_probs)),
          value,
      )
  
imports: import math
  from numbers import Number
  import torch
  from torch.distributions import constraints
  from torch.distributions.exp_family import ExponentialFamily
  from torch.distributions.utils import broadcast_all, clamp_probs, lazy_property, logits_to_probs, probs_to_logits
  from torch.nn.functional import binary_cross_entropy_with_logits
label_desc: Use image node_id 17 for calling the ContinuousBernoulli obj's underlying member method code with example usage: obj.icdf(value) and returns: torch