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","."]
docstr: Called at the end of each validation step.
docstr_tok: ["Called","at","the","end","of","each","validation","step","."]
code: def validation_step_end(
      self, val_step_outputs: STEP_OUTPUT, *args, **kwargs
  ) -> STEP_OUTPUT:
      """Called at the end of each validation step."""
      del args, kwargs  # These variables are not used.
  
      self._outputs_to_cpu(val_step_outputs)
      self._post_process(val_step_outputs)
      return val_step_outputs
  
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 6 for calling the AnomalyModule obj's underlying member method code with example usage: obj.validation_step_end(val_step_outputs) and returns: val_step_outputs