code: def subtract_mean(data, channels, mean_sub_values) -> List[str]:
      """
      Per channel subtraction values computed from compute_mean() or compute_mean_from_dir()
      Subtracts mean from the validation set
      """
  
      mean_process = MeanProcess(mean_sub_values, channels)
  
      if len(data) == 0:
          raise ValueError("Dataset is empty")
  
      if not isinstance(data, (list, Tensor)):
          raise ValueError(
              "Dataset must be a list of size = number of images and shape = image shape"
          )
  
      data = [
          mean_process.mean_preprocess(tens, channels) for tens in data
      ]
  
      return data
  
file_path: caer/caer/preprocessing/mean_subtraction.py
imports: from .._internal import _check_mean_sub_values
  from ..path import exists, list_images
  from ..io import imread
  from ..coreten import Tensor
  from ..annotations import Tuple, List, Union
  import numpy
  import cv2
label_desc: Use image node_id 3 for calling a global function with example usage: subtract_mean(data, channels, mean_sub_values) and returns: data