class_docstr: DataHandler generate augmented batches used for training or validation.
  
  Args:
      lr_dir: directory containing the Low Res images.
      hr_dir: directory containing the High Res images.
      patch_size: integer, size of the patches extracted from LR images.
      scale: integer, upscaling factor.
      n_validation_samples: integer, size of the validation set. Only provided if the
          DataHandler is used to generate validation sets.
code: def __init__(
      self, lr_dir, hr_dir, patch_size, scale, n_validation_samples=None
  ):
      self.folders = {"hr": hr_dir, "lr": lr_dir}  # image folders
      self.extensions = (
          ".png",
          ".jpeg",
          ".jpg",
      )  # admissible extension
      self.img_list = {}  # list of file names
      self.n_validation_samples = n_validation_samples
      self.patch_size = patch_size
      self.scale = scale
      self.patch_size = {
          "lr": patch_size,
          "hr": patch_size * self.scale,
      }
      self.logger = get_logger(__name__)
      self._make_img_list()
      self._check_dataset()
  
file_path: image-super-resolution/ISR/utils/datahandler.py
imports: import os
  import imageio
  import numpy
  from ISR.utils.logger import get_logger
label_desc: Use image node_id 1 to create a new DataHandler object  with example: obj = DataHandler(lr_dir, hr_dir, patch_size, scale, n_validation_samples)