anomalib.models.patchcore.torch_model¶
PyTorch model for the PatchCore model implementation.
Module Contents¶
Classes¶
Patchcore Module. |
- class anomalib.models.patchcore.torch_model.PatchcoreModel(input_size: Tuple[int, int], layers: List[str], backbone: str = 'wide_resnet50_2', pre_trained: bool = True, num_neighbors: int = 9)[source]¶
Bases:
anomalib.models.components.DynamicBufferModule,torch.nn.ModulePatchcore Module.
- forward(input_tensor: torch.Tensor) Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]][source]¶
Return Embedding during training, or a tuple of anomaly map and anomaly score during testing.
Steps performed: 1. Get features from a CNN. 2. Generate embedding based on the features. 3. Compute anomaly map in test mode.
- Parameters
input_tensor (Tensor) – Input tensor
- Returns
- Embedding for training,
anomaly map and anomaly score for testing.
- Return type
Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]
- generate_embedding(features: Dict[str, torch.Tensor]) torch.Tensor[source]¶
Generate embedding from hierarchical feature map.
- Parameters
features – Hierarchical feature map from a CNN (ResNet18 or WideResnet)
features – Dict[str:Tensor]:
- Returns
Embedding vector
- static reshape_embedding(embedding: torch.Tensor) torch.Tensor[source]¶
Reshape Embedding.
Reshapes Embedding to the following format: [Batch, Embedding, Patch, Patch] to [Batch*Patch*Patch, Embedding]
- Parameters
embedding (Tensor) – Embedding tensor extracted from CNN features.
- Returns
Reshaped embedding tensor.
- Return type
Tensor
- subsample_embedding(embedding: torch.Tensor, sampling_ratio: float) None[source]¶
Subsample embedding based on coreset sampling and store to memory.
- Parameters
embedding (np.ndarray) – Embedding tensor from the CNN
sampling_ratio (float) – Coreset sampling ratio
- nearest_neighbors(embedding: torch.Tensor, n_neighbors: int = 9) torch.Tensor[source]¶
Nearest Neighbours using brute force method and euclidean norm.
- Parameters
embedding (Tensor) – Features to compare the distance with the memory bank.
n_neighbors (int) – Number of neighbors to look at
- Returns
Patch scores.
- Return type
Tensor