class_docstr: Mean and standard deviation of the anomaly scores of normal training data.
docstr: Compute stats.
code: def compute(self) -> tuple[Tensor, Tensor, Tensor, Tensor]:
      """Compute stats."""
      anomaly_scores = torch.hstack(self.anomaly_scores)
      anomaly_scores = torch.log(anomaly_scores)
  
      self.image_mean = anomaly_scores.mean()
      self.image_std = anomaly_scores.std()
  
      if self.anomaly_maps:
          anomaly_maps = torch.vstack(self.anomaly_maps)
          anomaly_maps = torch.log(anomaly_maps).cpu()
  
          self.pixel_mean = anomaly_maps.mean(dim=0).squeeze()
          self.pixel_std = anomaly_maps.std(dim=0).squeeze()
  
      return (
          self.image_mean,
          self.image_std,
          self.pixel_mean,
          self.pixel_std,
      )
  
file_path: anomalib/src/anomalib/utils/metrics/anomaly_score_distribution.py
imports: from __future__ import annotations
  import torch
  from torch import Tensor
  from torchmetrics import Metric
label_desc: Use image node_id 3 for calling the AnomalyScoreDistribution obj's underlying member method code with example usage: obj.compute() and returns: self,  self,  self,  self