class_docstr: Normality Model for the DFKDE algorithm.
  
  Args:
      backbone (str): Pre-trained model backbone.
      pre_trained (bool, optional): Boolean to check whether to use a pre_trained backbone.
      n_comps (int, optional): Number of PCA components. Defaults to 16.
      pre_processing (str, optional): Preprocess features before passing to KDE.
          Options are between `norm` and `scale`. Defaults to "scale".
      filter_count (int, optional): Number of training points to fit the KDE model. Defaults to 40000.
      threshold_steepness (float, optional): Controls how quickly the value saturates around zero. Defaults to 0.05.
      threshold_offset (float, optional): Offset of the density function from 0. Defaults to 12.0.
code: def __init__(
      self,
      layers: list[str],
      backbone: str,
      pre_trained: bool = True,
      n_pca_components: int = 16,
      feature_scaling_method: FeatureScalingMethod = FeatureScalingMethod.SCALE,
      max_training_points: int = 40000,
  ) -> None:
      super().__init__()
  
      self.feature_extractor = FeatureExtractor(
          backbone=backbone, pre_trained=pre_trained, layers=layers
      ).eval()
  
      self.classifier = KDEClassifier(
          n_pca_components=n_pca_components,
          feature_scaling_method=feature_scaling_method,
          max_training_points=max_training_points,
      )
  
file_path: anomalib/src/anomalib/models/dfkde/torch_model.py
imports: from __future__ import annotations
  import logging
  import torch
  import torch.nn.functional
  from torch import Tensor, nn
  from anomalib.models.components import FeatureExtractor
  from anomalib.models.components.classification import FeatureScalingMethod, KDEClassifier
label_desc: Use image node_id 1 to create a new DfkdeModel object from inherited base classes: nn with example: obj = DfkdeModel(layers, backbone, pre_trained, n_pca_components, feature_scaling_method, max_training_points)