class_docstr: AnomalyModule to train, validate, predict and test images.
  
  Acts as a base class for all the Anomaly Modules in the library.
class_docstr_tok: ["AnomalyModule","to","train",",","validate",",","predict","and","test","images",".","Acts","as","a","base","class","for","all","the","Anomaly","Modules","in","the","library","."]
code: def _collect_outputs(
      image_metric: AnomalibMetricCollection,
      pixel_metric: AnomalibMetricCollection,
      outputs: EPOCH_OUTPUT,
  ) -> None:
      for output in outputs:
          image_metric.cpu()
          image_metric.update(
              output["pred_scores"], output["label"].int()
          )
          if (
              "mask" in output.keys()
              and "anomaly_maps" in output.keys()
          ):
              pixel_metric.cpu()
              pixel_metric.update(
                  torch.squeeze(output["anomaly_maps"]),
                  torch.squeeze(output["mask"].int()),
              )
  
imports: from __future__ import annotations
  import importlib
  import logging
  from abc import ABC
  from typing import Any, OrderedDict
  from warnings import warn
  import pytorch_lightning
  import torch
  from pytorch_lightning.callbacks import Callback
  from pytorch_lightning.utilities.types import EPOCH_OUTPUT, STEP_OUTPUT
  from torch import Tensor, nn
  from torchmetrics import Metric
  from anomalib.data.utils import boxes_to_anomaly_maps, boxes_to_masks, masks_to_boxes
  from anomalib.post_processing import ThresholdMethod
  from anomalib.utils.metrics import AnomalibMetricCollection, AnomalyScoreDistribution, AnomalyScoreThreshold, MinMax
label_desc: Use image node_id 11 for calling the AnomalyModule obj's underlying member method code with example usage: obj._collect_outputs(image_metric, pixel_metric, outputs) without return types