anomalib.models.padim.torch_model

PyTorch model for the PaDiM model implementation.

Module Contents

Classes

PadimModel

Padim Module.

Attributes

anomalib.models.padim.torch_model.DIMS[source]
class anomalib.models.padim.torch_model.PadimModel(input_size: Tuple[int, int], layers: List[str], backbone: str = 'resnet18')[source]

Bases: torch.nn.Module

Padim Module.

Parameters
  • input_size (Tuple[int, int]) – Input size for the model.

  • layers (List[str]) – Layers used for feature extraction

  • backbone (str, optional) – Pre-trained model backbone. Defaults to “resnet18”.

forward(self, input_tensor: torch.Tensor) torch.Tensor[source]

Forward-pass image-batch (N, C, H, W) into model to extract features.

Parameters
  • input_tensor – Image-batch (N, C, H, W)

  • input_tensor – Tensor:

Returns

Features from single/multiple layers.

Example

>>> x = torch.randn(32, 3, 224, 224)
>>> features = self.extract_features(input_tensor)
>>> features.keys()
dict_keys(['layer1', 'layer2', 'layer3'])
>>> [v.shape for v in features.values()]
[torch.Size([32, 64, 56, 56]),
torch.Size([32, 128, 28, 28]),
torch.Size([32, 256, 14, 14])]
generate_embedding(self, features: Dict[str, torch.Tensor]) torch.Tensor[source]

Generate embedding from hierarchical feature map.

Parameters

features (Dict[str, Tensor]) – Hierarchical feature map from a CNN (ResNet18 or WideResnet)

Returns

Embedding vector