anomalib.models.components.stats.multi_variate_gaussian

Multi Variate Gaussian Distribution.

Module Contents

Classes

MultiVariateGaussian

Multi Variate Gaussian Distribution.

class anomalib.models.components.stats.multi_variate_gaussian.MultiVariateGaussian(n_features, n_patches)[source]

Bases: torch.nn.Module

Multi Variate Gaussian Distribution.

static _cov(observations: torch.Tensor, rowvar: bool = False, bias: bool = False, ddof: Optional[int] = None, aweights: torch.Tensor = None) torch.Tensor[source]

Estimates covariance matrix like numpy.cov.

Parameters
  • observations (Tensor) – A 1-D or 2-D array containing multiple variables and observations. Each row of m represents a variable, and each column a single observation of all those variables. Also see rowvar below.

  • rowvar (bool) – If rowvar is True (default), then each row represents a variable, with observations in the columns. Otherwise, the relationship is transposed: each column represents a variable, while the rows contain observations. Defaults to False.

  • bias (bool) – Default normalization (False) is by (N - 1), where N is the number of observations given (unbiased estimate). If bias is True, then normalization is by N. These values can be overridden by using the keyword ddof in numpy versions >= 1.5. Defaults to False

  • ddof (Optional, int) – If not None the default value implied by bias is overridden. Note that ddof=1 will return the unbiased estimate, even if both fweights and aweights are specified, and ddof=0 will return the simple average. See the notes for the details. The default value is None.

  • aweights (Tensor) – 1-D array of observation vector weights. These relative weights are typically large for observations considered “important” and smaller for observations considered less “important”. If ddof=0 the array of weights can be used to assign probabilities to observation vectors. (Default value = None)

Returns

The covariance matrix of the variables.

forward(embedding: torch.Tensor) List[torch.Tensor][source]

Calculate multivariate Gaussian distribution.

Parameters

embedding (Tensor) – CNN features whose dimensionality is reduced via either random sampling or PCA.

Returns

mean and inverse covariance of the multi-variate gaussian distribution that fits the features.

fit(embedding: torch.Tensor) List[torch.Tensor][source]

Fit multi-variate gaussian distribution to the input embedding.

Parameters

embedding (Tensor) – Embedding vector extracted from CNN.

Returns

Mean and the covariance of the embedding.