class_docstr: Kumaraswamy distribution.
  
  The Kumaraswamy distribution is defined over the `(0, 1)` interval using
  parameters
  `concentration1` (aka 'alpha') and `concentration0` (aka 'beta').  It has a
  shape similar to the Beta distribution, but is easier to reparameterize.
  
  #### Mathematical Details
  
  The probability density function (pdf) is,
  
  ```none
  pdf(x; alpha, beta) = alpha * beta * x**(alpha - 1) * (1 - x**alpha)**(beta -
  1)
  ```
  
  where:
  
  * `concentration1 = alpha`,
  * `concentration0 = beta`,
  
  Distribution parameters are automatically broadcast in all functions; see
  examples for details.
  
  #### Examples
  
  ```python
  # Create a batch of three Kumaraswamy distributions.
  alpha = [1, 2, 3]
  beta = [1, 2, 3]
  dist = Kumaraswamy(alpha, beta)
  
  dist.sample([4, 5])  # Shape [4, 5, 3]
  
  # `x` has three batch entries, each with two samples.
  x = [[.1, .4, .5],
       [.2, .3, .5]]
  # Calculate the probability of each pair of samples under the corresponding
  # distribution in `dist`.
  dist.prob(x)         # Shape [2, 3]
  ```
  
  ```python
  # Create batch_shape=[2, 3] via parameter broadcast:
  alpha = [[1.], [2]]      # Shape [2, 1]
  beta = [3., 4, 5]        # Shape [3]
  dist = Kumaraswamy(alpha, beta)
  
  # alpha broadcast as: [[1., 1, 1,],
  #                      [2, 2, 2]]
  # beta broadcast as:  [[3., 4, 5],
  #                      [3, 4, 5]]
  # batch_Shape [2, 3]
  dist.sample([4, 5])  # Shape [4, 5, 2, 3]
  
  x = [.2, .3, .5]
  # x will be broadcast as [[.2, .3, .5],
  #                         [.2, .3, .5]],
  # thus matching batch_shape [2, 3].
  dist.prob(x)         # Shape [2, 3]
  ```
docstr: Initialize a batch of Kumaraswamy distributions.
  
  Args:
    concentration1: Positive floating-point `Tensor` indicating mean
      number of successes; aka 'alpha'. Implies `self.dtype` and
      `self.batch_shape`, i.e.,
      `concentration1.shape = [N1, N2, ..., Nm] = self.batch_shape`.
    concentration0: Positive floating-point `Tensor` indicating mean
      number of failures; aka 'beta'. Otherwise has same semantics as
      `concentration1`.
    validate_args: Python `bool`, default `False`. When `True` distribution
      parameters are checked for validity despite possibly degrading runtime
      performance. When `False` invalid inputs may silently render incorrect
      outputs.
    allow_nan_stats: Python `bool`, default `True`. When `True`, statistics
      (e.g., mean, mode, variance) use the value '`NaN`' to indicate the
      result is undefined. When `False`, an exception is raised if one or
      more of the statistic's batch members are undefined.
    name: Python `str` name prefixed to Ops created by this class.
docstr_tok: ["Initialize","a","batch","of","Kumaraswamy","distributions",".","Args",":","concentration1",":","Positive","floating-point","`","Tensor","`","indicating","mean","number","of","successes",";","aka","'alpha","'",".","Implies","`","self.dtype","`","and","`","self.batch_shape","`",",","i.e.",",","`","concentration1.shape","=","[","N1",",","N2",",","...",",","Nm","]","=","self.batch_shape","`",".","concentration0",":","Positive","floating-point","`","Tensor","`","indicating","mean","number","of","failures",";","aka","'beta","'",".","Otherwise","has","same","semantics","as","`","concentration1","`",".","validate_args",":","Python","`","bool","`",",","default","`","False","`",".","When","`","True","`","distribution","parameters","are","checked","for","validity","despite","possibly","degrading","runtime","performance",".","When","`","False","`","invalid","inputs","may","silently","render","incorrect","outputs",".","allow_nan_stats",":","Python","`","bool","`",",","default","`","True","`",".","When","`","True","`",",","statistics","(","e.g.",",","mean",",","mode",",","variance",")","use","the","value","'","`","NaN","`","'","to","indicate","the","result","is","undefined",".","When","`","False","`",",","an","exception","is","raised","if","one","or","more","of","the","statistic","'s","batch","members","are","undefined",".","name",":","Python","`","str","`","name","prefixed","to","Ops","created","by","this","class","."]
code: def __init__(
      self,
      concentration1=1.0,
      concentration0=1.0,
      validate_args=False,
      allow_nan_stats=True,
      name="Kumaraswamy",
  ):
      """Initialize a batch of Kumaraswamy distributions.
  
      Args:
        concentration1: Positive floating-point `Tensor` indicating mean
          number of successes; aka 'alpha'. Implies `self.dtype` and
          `self.batch_shape`, i.e.,
          `concentration1.shape = [N1, N2, ..., Nm] = self.batch_shape`.
        concentration0: Positive floating-point `Tensor` indicating mean
          number of failures; aka 'beta'. Otherwise has same semantics as
          `concentration1`.
        validate_args: Python `bool`, default `False`. When `True` distribution
          parameters are checked for validity despite possibly degrading runtime
          performance. When `False` invalid inputs may silently render incorrect
          outputs.
        allow_nan_stats: Python `bool`, default `True`. When `True`, statistics
          (e.g., mean, mode, variance) use the value '`NaN`' to indicate the
          result is undefined. When `False`, an exception is raised if one or
          more of the statistic's batch members are undefined.
        name: Python `str` name prefixed to Ops created by this class.
      """
      parameters = dict(locals())
      with tf.name_scope(name) as name:
          dtype = dtype_util.common_dtype(
              [concentration1, concentration0], dtype_hint=tf.float32
          )
          concentration1 = tensor_util.convert_nonref_to_tensor(
              concentration1, name="concentration1", dtype=dtype
          )
          concentration0 = tensor_util.convert_nonref_to_tensor(
              concentration0, name="concentration0", dtype=dtype
          )
          self._kumaraswamy_cdf = kumaraswamy_cdf.KumaraswamyCDF(
              concentration1=concentration1,
              concentration0=concentration0,
              validate_args=validate_args,
          )
          super(Kumaraswamy, self).__init__(
              distribution=uniform.Uniform(
                  low=tf.zeros([], dtype=dtype),
                  high=tf.ones([], dtype=dtype),
                  allow_nan_stats=allow_nan_stats,
              ),
              bijector=invert.Invert(
                  self._kumaraswamy_cdf, validate_args=validate_args
              ),
              parameters=parameters,
              name=name,
          )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import invert
  from tensorflow_probability.python.bijectors import kumaraswamy_cdf
  from tensorflow_probability.python.bijectors import sigmoid
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.math import generic
  from tensorflow_probability.python.math import special
label_desc: Use image node_id 1 to create a new Kumaraswamy object from inherited base classes: transformed_distribution with example: obj = Kumaraswamy(concentration1, concentration0, validate_args, allow_nan_stats, name)