class_docstr: The Weibull distribution with 'concentration' and `scale` parameters.
  
  #### Mathematical details
  
  The probability density function (pdf) of this distribution is,
  
  ```none
  pdf(x; lambda, k) =
    k / lambda * (x / lambda) ** (k - 1) * exp(-(x / lambda) ** k)
  ```
  
  where `concentration = k` and `scale = lambda`.
  
  The cumulative density function of this distribution is,
  
  ```none
  cdf(x; lambda, k) = 1 - exp(-(x / lambda) ** k)
  ```
  
  The Weibull distribution includes the Exponential and Rayleigh distributions
  as special cases:
  
  ```none
  Exponential(rate) = Weibull(concentration=1., 1. / rate)
  ```
  
  ```none
  Rayleigh(scale) = Weibull(concentration=2., sqrt(2.) * scale)
  ```
  
  #### Examples
  
  Example of initialization of one distribution.
  
  ```python
  tfd = tfp.distributions
  
  # Define a single scalar Weibull distribution.
  dist = tfd.Weibull(concentration=1., scale=3.)
  
  # Evaluate the cdf at 1, returning a scalar.
  dist.cdf(1.)
  ```
  
  Example of initialization of a 3-batch of distributions with varying scales
  and concentrations.
  
  ```python
  tfd = tfp.distributions
  
  # Define a 3-batch of Weibull distributions.
  scale = [1., 3., 45.]
  concentration = [2.5, 22., 7.]
  dist = tfd.Weibull(concentration=concentration, scale=scale)
  
  # Evaluate the cdfs at 1.
  dist.cdf(1.)    # shape: [3]
  ```
class_docstr_tok: ["The","Weibull","distribution","with","'concentration","'","and","`","scale","`","parameters",".","#","#","#","#","Mathematical","details","The","probability","density","function","(","pdf",")","of","this","distribution","is",",","``","`","none","pdf","(","x",";","lambda",",","k",")","=","k","\/","lambda","*","(","x","\/","lambda",")","*","*","(","k","-","1",")","*","exp","(","-","(","x","\/","lambda",")","*","*","k",")","``","`","where","`","concentration","=","k","`","and","`","scale","=","lambda","`",".","The","cumulative","density","function","of","this","distribution","is",",","``","`","none","cdf","(","x",";","lambda",",","k",")","=","1","-","exp","(","-","(","x","\/","lambda",")","*","*","k",")","``","`","The","Weibull","distribution","includes","the","Exponential","and","Rayleigh","distributions","as","special","cases",":","``","`","none","Exponential","(","rate",")","=","Weibull","(","concentration=1.",",","1",".","\/","rate",")","``","`","``","`","none","Rayleigh","(","scale",")","=","Weibull","(","concentration=2.",",","sqrt","(","2",".",")","*","scale",")","``","`","#","#","#","#","Examples","Example","of","initialization","of","one","distribution",".","``","`","python","tfd","=","tfp.distributions","#","Define","a","single","scalar","Weibull","distribution",".","dist","=","tfd.Weibull","(","concentration=1.",",","scale=3",".",")","#","Evaluate","the","cdf","at","1",",","returning","a","scalar",".","dist.cdf","(","1",".",")","``","`","Example","of","initialization","of","a","3-batch","of","distributions","with","varying","scales","and","concentrations",".","``","`","python","tfd","=","tfp.distributions","#","Define","a","3-batch","of","Weibull","distributions",".","scale","=","[","1.",",","3.",",","45",".","]","concentration","=","[","2.5",",","22.",",","7",".","]","dist","=","tfd.Weibull","(","concentration=concentration",",","scale=scale",")","#","Evaluate","the","cdfs","at","1",".","dist.cdf","(","1",".",")","#","shape",":","[","3","]","``","`"]
docstr: Construct Weibull distributions.
  
  The parameters `concentration` and `scale` must be shaped in a way that
  supports broadcasting (e.g. `concentration + scale` is a valid operation).
  
  Args:
   concentration: Positive Float-type `Tensor`, the concentration param of the
     distribution. Must contain only positive values.
   scale: Positive Float-type `Tensor`, the scale param of the distribution.
     Must contain only positive values.
   validate_args: Python `bool` indicating whether arguments should be checked
     for correctness.
   allow_nan_stats: Python `bool` indicating whether nan values should be
     allowed.
   name: Python `str` name given to ops managed by this class.
     Default value: `'Weibull'`.
  
  Raises:
    TypeError: if concentration and scale are different dtypes.
docstr_tok: ["Construct","Weibull","distributions",".","The","parameters","`","concentration","`","and","`","scale","`","must","be","shaped","in","a","way","that","supports","broadcasting","(","e.g",".","`","concentration","+","scale","`","is","a","valid","operation",")",".","Args",":","concentration",":","Positive","Float-type","`","Tensor","`",",","the","concentration","param","of","the","distribution",".","Must","contain","only","positive","values",".","scale",":","Positive","Float-type","`","Tensor","`",",","the","scale","param","of","the","distribution",".","Must","contain","only","positive","values",".","validate_args",":","Python","`","bool","`","indicating","whether","arguments","should","be","checked","for","correctness",".","allow_nan_stats",":","Python","`","bool","`","indicating","whether","nan","values","should","be","allowed",".","name",":","Python","`","str","`","name","given","to","ops","managed","by","this","class",".","Default","value",":","`","'Weibull","'","`",".","Raises",":","TypeError",":","if","concentration","and","scale","are","different","dtypes","."]
code: def __init__(
      self,
      concentration,
      scale,
      validate_args=False,
      allow_nan_stats=True,
      name="Weibull",
  ):
      """Construct Weibull distributions.
  
      The parameters `concentration` and `scale` must be shaped in a way that
      supports broadcasting (e.g. `concentration + scale` is a valid operation).
  
      Args:
       concentration: Positive Float-type `Tensor`, the concentration param of the
         distribution. Must contain only positive values.
       scale: Positive Float-type `Tensor`, the scale param of the distribution.
         Must contain only positive values.
       validate_args: Python `bool` indicating whether arguments should be checked
         for correctness.
       allow_nan_stats: Python `bool` indicating whether nan values should be
         allowed.
       name: Python `str` name given to ops managed by this class.
         Default value: `'Weibull'`.
  
      Raises:
        TypeError: if concentration and scale are different dtypes.
  
      """
      parameters = dict(locals())
      with tf.name_scope(name) as name:
          dtype = dtype_util.common_dtype(
              [concentration, scale], dtype_hint=tf.float32
          )
          concentration = tensor_util.convert_nonref_to_tensor(
              concentration, name="concentration", dtype=dtype
          )
          scale = tensor_util.convert_nonref_to_tensor(
              scale, name="scale", dtype=dtype
          )
          # Positive scale and concentration is asserted by the incorporated
          # Weibull bijector.
          self._weibull_bijector = weibull_cdf_bijector.WeibullCDF(
              scale=scale,
              concentration=concentration,
              validate_args=validate_args,
          )
  
          super(Weibull, self).__init__(
              distribution=uniform.Uniform(
                  low=tf.zeros([], dtype=dtype),
                  high=tf.ones([], dtype=dtype),
                  allow_nan_stats=allow_nan_stats,
              ),
              # The Weibull bijector encodes the CDF function as the forward,
              # and hence needs to be inverted.
              bijector=invert_bijector.Invert(
                  self._weibull_bijector, 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 softplus
  from tensorflow_probability.python.bijectors import weibull_cdf
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.distributions.gamma import Gamma
  from tensorflow_probability.python.internal import assert_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
label_desc: Use image node_id 1 to create a new Weibull object from inherited base classes: transformed_distribution with example: obj = Weibull(concentration, scale, validate_args, allow_nan_stats, name)