:py:mod:`anomalib.models.stfpm.anomaly_map` =========================================== .. py:module:: anomalib.models.stfpm.anomaly_map .. autoapi-nested-parse:: Anomaly Map Generator for the STFPM model implementation. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: anomalib.models.stfpm.anomaly_map.AnomalyMapGenerator .. py:class:: AnomalyMapGenerator(image_size: Union[omegaconf.ListConfig, Tuple]) Bases: :py:obj:`torch.nn.Module` Generate Anomaly Heatmap. .. py:method:: compute_layer_map(teacher_features: torch.Tensor, student_features: torch.Tensor) -> torch.Tensor Compute the layer map based on cosine similarity. :param teacher_features: Teacher features :type teacher_features: Tensor :param student_features: Student features :type student_features: Tensor :returns: Anomaly score based on cosine similarity. .. py:method:: compute_anomaly_map(teacher_features: Dict[str, torch.Tensor], student_features: Dict[str, torch.Tensor]) -> torch.Tensor Compute the overall anomaly map via element-wise production the interpolated anomaly maps. :param teacher_features: Teacher features :type teacher_features: Dict[str, Tensor] :param student_features: Student features :type student_features: Dict[str, Tensor] :returns: Final anomaly map .. py:method:: forward(**kwargs: Dict[str, torch.Tensor]) -> torch.Tensor Returns anomaly map. Expects `teach_features` and `student_features` keywords to be passed explicitly. .. rubric:: Example >>> anomaly_map_generator = AnomalyMapGenerator(image_size=tuple(hparams.model.input_size)) >>> output = self.anomaly_map_generator( teacher_features=teacher_features, student_features=student_features ) :raises ValueError: `teach_features` and `student_features` keys are not found :returns: anomaly map :rtype: torch.Tensor