code: def preview_data_aug(img_path, data_aug, rows=1, n=4):
      """
      ```
      Preview data augmentation (ImageDatagenerator)
      on a supplied image.
      ```
      """
      if type(img_path) != type("") or not os.path.isfile(img_path):
          raise ValueError("img_path must be valid file path to image")
      idg = copy.copy(data_aug)
      idg.featurewise_center = False
      idg.featurewise_std_normalization = False
      idg.samplewise_center = False
      idg.samplewise_std_normalization = False
      idg.rescale = None
      idg.zca_whitening = False
      idg.preprocessing_function = None
  
      img = keras.preprocessing.image.load_img(img_path)
      x = img_to_array(img)
      x = x / 255.0
      x = x.reshape((1,) + x.shape)
      i = 0
      ims = []
      for batch in idg.flow(x, batch_size=1):
          ims.append(np.squeeze(batch))
          i += 1
          if i >= n:
              break
      U.plots(ims, rows=rows)
      return
  
imports: from ..None import utils
  from ..imports import *
  from .preprocessor import ImagePreprocessor
label_desc: Use image node_id 3 for calling a global function with example usage: preview_data_aug(img_path, data_aug, rows, n) without return types