class_docstr: DSR: A Dual Subspace Re-Projection Network for Surface Anomaly Detection
  
  Args:
      hparams (DictConfig | ListConfig): Model parameters
code: def __init__(self, hparams: DictConfig | ListConfig) -> None:
      super().__init__(
          latent_anomaly_strength=hparams.model.latent_anomaly_strength
      )
      self.hparams: DictConfig | ListConfig  # type: ignore
      self.save_hyperparameters(hparams)
  
imports: from __future__ import annotations
  import logging
  from pathlib import Path
  import torch
  from omegaconf import DictConfig, ListConfig
  from pytorch_lightning.utilities.types import STEP_OUTPUT
  from torch import Tensor
  from anomalib.data.utils import DownloadInfo, download_and_extract
  from anomalib.data.utils.augmenter import Augmenter
  from anomalib.models.components import AnomalyModule
  from anomalib.models.dsr.anomaly_generator import DsrAnomalyGenerator
  from anomalib.models.dsr.loss import DsrSecondStageLoss, DsrThirdStageLoss
  from anomalib.models.dsr.torch_model import DsrModel
label_desc: Use image node_id 1 to create a new DsrLightning object from inherited base classes: Dsr with example: obj = DsrLightning(hparams)