Attend the Women in ML Symposium on December 7 Register now

tfp.substrates.jax.distributions.Weibull

Stay organized with collections Save and categorize content based on your preferences.

The Weibull distribution with 'concentration' and scale parameters.

Inherits From: TransformedDistribution, Distribution

Mathematical details

The probability density function (pdf) of this distribution is,

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,

cdf(x; lambda, k) = 1 - exp(-(x / lambda) ** k)

The Weibull distribution includes the Exponential and Rayleigh distributions as special cases:

Exponential(rate) = Weibull(concentration=1., 1. / rate)
Rayleigh(scale) = Weibull(concentration=2., sqrt(2.) * scale)

Examples

Example of initialization of one distribution.

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.

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]

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'.

TypeError if concentration and scale are different dtypes.

allow_nan_stats Python bool describing behavior when a stat is undefined.

Stats return +/- infinity when it makes sense. E.g., the variance of a Cauchy distribution is infinity. However, sometimes the statistic is undefined, e.g., if a distribution's pdf does not achieve a maximum within the support of the distribution, the mode is undefined. If the mean is undefined, then by definition the variance is undefined. E.g. the mean for Student's T for df = 1 is undefined (no clear way to say it is either + or - infinity), so the variance = E[(X - mean)**2] is also undefined.

batch_shape Shape of a single sample from a single event index as a TensorShape.

May be partially defined or unknown.

The batch dimensions are indexes into independent, non-identical parameterizations of this distribution.

bijector Function transforming x => y.
concentration Distribution parameter for the concentration.
distribution Base distribution, p(x).
dtype The DType of Tensors handled by this Distribution.
event_shape Shape of a single sample from a single batch as a TensorShape.

May be partially defined or unknown.

experimental_shard_axis_names The list or structure of lists of active shard axis names.
name Name prepended to all ops created by this Distribution.
parameters Dictionary of parameters used to instantiate this Distribution.
reparameterization_type Describes how samples from the distribution are reparameterized.

Currently this is one of the static instances tfd.FULLY_REPARAMETERIZED or tfd.NOT_REPARAMETERIZED.

scale Distribution parameter for scale.
trainable_variables

validate_args Python bool indicating possibly expensive checks are enabled.
variables

Methods

batch_shape_tensor

View source

Shape of a single sample from a single event index as a 1-D Tensor.

The batch dimensions are indexes into independent, non-identical parameterizations of this distribution.

Args
name name to give to the op

Returns
batch_shape Tensor.

cdf

View source

Cumulative distribution function.

Given random variable X, the cumulative distribution function cdf is:

cdf(x) := P[X <= x]

Args
value float or double Tensor.
name Python str prepended to names of ops created by this function.
**kwargs Named arguments forwarded to subclass implementation.

Returns
cdf a Tensor of shape sample_shape(x) + self.batch_shape with values of type self.dtype.

copy

View source

Creates a deep copy of the distribution.

Args
**override_parameters_kwargs String/value dictionary of initialization arguments to override with new values.

Returns
distribution A new instance of type(self) initialized from the union of self.parameters and override_parameters_kwargs, i.e., dict(self.parameters, **override_parameters_kwargs).

covariance

View source

Covariance.

Covariance is (possibly) defined only for non-scalar-event distributions.

For example, for a length-k, vector-valued distribution, it is calculated as,

Cov[i, j] = Covariance(X_i, X_j) = E[(X_i - E[X_i]) (X_j - E[X_j])]

where Cov is a (batch of) k x k matrix, 0 <= (i, j) < k, and E denotes expectation.

Alternatively, for non-vector, multivariate distributions (e.g., matrix-valued, Wishart), Covariance shall return a (batch of) matrices under some vectorization of the events, i.e.,

Cov[i, j] = Covariance(Vec(X)_i, Vec(X)_j) = [as above]

where Cov is a (batch of) k' x k' matrices, 0 <= (i, j) < k' = reduce_prod(event_shape), and Vec is some function mapping indices of this distribution's event dimensions to indices of a length-k' vector.

Args
name Python str prepended to names of ops created by this function.
**kwargs Named arguments forwarded to subclass implementation.

Returns
covariance Floating-point Tensor with shape [B1, ..., Bn, k', k'] where the first n dimensions are batch coordinates and k' = reduce_prod(self.event_shape).

cross_entropy

View source

Computes the (Shannon) cross entropy.

Denote this distribution (self) by P and the other distribution by Q. Assuming P, Q are absolutely continuous with respect to one another and permit densities p(x) dr(x) and q(x) dr(x), (Shannon) cross entropy is defined as:

H[P, Q] = E_p[-log q(X)] = -int_F p(x) log q(x) dr(x)

where F denotes the support of the random variable X ~ P.

other types with built-in registrations: Chi, ExpInverseGamma, Exponential, Gamma, GeneralizedExtremeValue, Gumbel, JohnsonSU, Kumaraswamy, LambertWDistribution, LambertWNormal, LogLogistic, LogNormal, LogitNormal, Moyal, MultivariateNormalDiag, MultivariateNormalDiagPlusLowRank, MultivariateNormalFullCovariance, MultivariateNormalLinearOperator, MultivariateNormalTriL, RelaxedOneHotCategorical, SinhArcsinh, TransformedDistribution, Weibull

Args
other tfp.distributions.Distribution instance.
name Python str prepended to names of ops created by this function.

Returns
cross_entropy self.dtype Tensor with shape [B1, ..., Bn] representing n different calculations of (Shannon) cross entropy.

entropy

View source