class_docstr: Density estimation based on Gaussian Mixture Model.
  
  Args:
      n_components (int): Number of components used in the GMM.
docstr: Fit the GMM and compute normalization statistics.
code: def fit(self):
      """Fit the GMM and compute normalization statistics."""
      self.memory_bank = torch.vstack(self.memory_bank)
      self.gmm.fit(self.memory_bank.cpu())
      self._compute_normalization_statistics()
  
imports: from __future__ import annotations
  from abc import ABC, abstractmethod
  from typing import Any
  import torch
  from sklearn.mixture import GaussianMixture
  from torch import Tensor, nn
  from anomalib.models.ai_vad.features import FeatureType
  from anomalib.utils.metrics.min_max import MinMax
label_desc: Use image node_id 3 for calling the GMMEstimator obj's underlying member method code with example usage: obj.fit() without return types