class_docstr: PL Lightning Module for the STFPM algorithm.
  
  Args:
      input_size (tuple[int, int]): Size of the model input.
      backbone (str): Backbone CNN network
      layers (list[str]): Layers to extract features from the backbone CNN
class_docstr_tok: ["PL","Lightning","Module","for","the","STFPM","algorithm",".","Args",":","input_size","(","tuple","[","int",",","int","]",")",":","Size","of","the","model","input",".","backbone","(","str",")",":","Backbone","CNN","network","layers","(","list","[","str","]",")",":","Layers","to","extract","features","from","the","backbone","CNN"]
code: def __init__(
      self,
      input_size: tuple[int, int],
      backbone: str,
      layers: list[str],
  ) -> None:
      super().__init__()
  
      self.model = STFPMModel(
          input_size=input_size,
          backbone=backbone,
          layers=layers,
      )
      self.loss = STFPMLoss()
  
file_path: anomalib/src/anomalib/models/stfpm/lightning_model.py
imports: from __future__ import annotations
  import torch
  from omegaconf import DictConfig, ListConfig
  from pytorch_lightning.callbacks import EarlyStopping
  from pytorch_lightning.utilities.types import STEP_OUTPUT
  from torch import Tensor, optim
  from anomalib.models.components import AnomalyModule
  from anomalib.models.stfpm.loss import STFPMLoss
  from anomalib.models.stfpm.torch_model import STFPMModel
label_desc: Use image node_id 1 to create a new Stfpm object from inherited base classes: AnomalyModule with example: obj = Stfpm(input_size, backbone, layers)