anomalib.models.components.stats

Statistical functions.

Submodules

Package Contents

Classes

GaussianKDE

Gaussian Kernel Density Estimation.

MultiVariateGaussian

Multi Variate Gaussian Distribution.

class anomalib.models.components.stats.GaussianKDE(dataset: Optional[torch.Tensor] = None)[source]

Bases: anomalib.models.components.base.DynamicBufferModule

Gaussian Kernel Density Estimation.

Parameters

dataset (Optional[Tensor], optional) – Dataset on which to fit the KDE model. Defaults to None.

forward(self, features: torch.Tensor) torch.Tensor

Get the KDE estimates from the feature map.

Parameters

features (Tensor) – Feature map extracted from the CNN

Returns: KDE Estimates

fit(self, dataset: torch.Tensor) None

Fit a KDE model to the input dataset.

Parameters

dataset (Tensor) – Input dataset.

Returns

None

static cov(tensor: torch.Tensor) torch.Tensor

Calculate the unbiased covariance matrix.

Parameters

tensor (Tensor) – Input tensor from which covariance matrix is computed.

Returns

Output covariance matrix.

class anomalib.models.components.stats.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

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(self, embedding: torch.Tensor) List[torch.Tensor]

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(self, embedding: torch.Tensor) List[torch.Tensor]

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.