class_docstr: Feature Pyramid Loss This class implmenents the feature pyramid loss function proposed in STFPM paper.
  
  Example:
      >>> from anomalib.models.components.feature_extractors import FeatureExtractor
      >>> from anomalib.models.stfpm.loss import STFPMLoss
      >>> from torchvision.models import resnet18
  
      >>> layers = ['layer1', 'layer2', 'layer3']
      >>> teacher_model = FeatureExtractor(model=resnet18(pretrained=True), layers=layers)
      >>> student_model = FeatureExtractor(model=resnet18(pretrained=False), layers=layers)
      >>> loss = Loss()
  
      >>> inp = torch.rand((4, 3, 256, 256))
      >>> teacher_features = teacher_model(inp)
      >>> student_features = student_model(inp)
      >>> loss(student_features, teacher_features)
          tensor(51.2015, grad_fn=<SumBackward0>)
docstr: Compute layer loss based on Equation (1) in Section 3.2 of the paper.
  
  Args:
    teacher_feats (Tensor): Teacher features
    student_feats (Tensor): Student features
  
  Returns:
    L2 distance between teacher and student features.
code: def compute_layer_loss(
      self, teacher_feats: Tensor, student_feats: Tensor
  ) -> Tensor:
      """Compute layer loss based on Equation (1) in Section 3.2 of the paper.
  
      Args:
        teacher_feats (Tensor): Teacher features
        student_feats (Tensor): Student features
  
      Returns:
        L2 distance between teacher and student features.
      """
  
      height, width = teacher_feats.shape[2:]
  
      norm_teacher_features = F.normalize(teacher_feats)
      norm_student_features = F.normalize(student_feats)
      layer_loss = (0.5 / (width * height)) * self.mse_loss(
          norm_teacher_features, norm_student_features
      )
  
      return layer_loss
  
file_path: anomalib/src/anomalib/models/stfpm/loss.py
imports: from __future__ import annotations
  import torch
  import torch.nn.functional
  from torch import Tensor, nn
label_desc: Use image node_id 2 for calling the STFPMLoss obj's underlying member method code with example usage: obj.compute_layer_loss(teacher_feats, student_feats) and returns: layer_loss