# Independent Source: https://www.tensorplay.cn/docs/generated/tensorplay.distributions.Independent.html ```python class tensorplay.distributions.Independent(base_distribution: D, reinterpreted_batch_ndims: int, validate_args: bool | None = None) ``` Reinterprets some of the batch dims of a distribution as event dims. This is mainly useful for changing the shape of the result of log_prob(). For example to create a diagonal Normal distribution with the same shape as a Multivariate Normal distribution (so they are interchangeable), you can: ``` >>> from tensorplay.distributions.multivariate_normal import MultivariateNormal >>> from tensorplay.distributions.normal import Normal >>> loc = tensorplay.zeros(3) >>> scale = tensorplay.ones(3) >>> mvn = MultivariateNormal(loc, scale_tril=tensorplay.diag(scale)) >>> [mvn.batch_shape, mvn.event_shape] [tensorplay.Size([]), tensorplay.Size([3])] >>> normal = Normal(loc, scale) >>> [normal.batch_shape, normal.event_shape] [tensorplay.Size([3]), tensorplay.Size([])] >>> diagn = Independent(normal, 1) >>> [diagn.batch_shape, diagn.event_shape] [tensorplay.Size([]), tensorplay.Size([3])] ``` Parameters: - base_distribution ([tensorplay.distributions.distribution.Distribution](/docs/generated/tensorplay.distributions.Distribution.html#tensorplay.distributions.Distribution)) – a base distribution - reinterpreted_batch_ndims ([int](https://docs.python.org/3/builtins/functions.html#int)) – the number of batch dims to reinterpret as event dims ```python property batch_shape: Size ``` Returns the shape over which parameters are batched. ```python cdf(value: Tensor) → Tensor ``` Returns the cumulative density/mass function evaluated at value. Parameters: value ([Tensor](/docs/generated/tensorplay.Tensor.html#tensorplay.Tensor)) ```python property event_shape: Size ``` Returns the shape of a single sample (without batching). ```python icdf(value: Tensor) → Tensor ``` Returns the inverse cumulative density/mass function evaluated at value. Parameters: value ([Tensor](/docs/generated/tensorplay.Tensor.html#tensorplay.Tensor)) ```python perplexity() → Tensor ``` Returns perplexity of distribution, batched over batch_shape. Returns: Tensor of shape batch_shape. ```python sample_n(n: int) → Tensor ``` Generates n samples or n batches of samples if the distribution parameters are batched. ```python static set_default_validate_args(value: bool) → None ``` Sets whether validation is enabled or disabled. The default behavior mimics Python’s assert statement: validation is on by default, but is disabled if Python is run in optimized mode (via python -O). Validation may be expensive, so you may want to disable it once a model is working. Parameters: value ([bool](https://docs.python.org/3/builtins/functions.html#bool)) – Whether to enable validation. ```python property stddev: Tensor ``` Returns the standard deviation of the distribution.