code: def _load_dataset_clipping(self, dataset_dir, epsilon):
      
      self.dataset_max_clip = {}
      self.dataset_min_clip = {}
      self._dataset_image_count = 0
      for fname in os.listdir(dataset_dir):
        if not fname.endswith('.png'):
          continue
        image_id = fname[:-4]
        image = np.array(
            Image.open(os.path.join(dataset_dir, fname)).convert('RGB'))
        image = image.astype('int32')
        self._dataset_image_count += 1
        self.dataset_max_clip[image_id] = np.clip(image + epsilon,
                                                  0,
                                                  255).astype('uint8')
        self.dataset_min_clip[image_id] = np.clip(image - epsilon,
                                                  0,
                                                  255).astype('uint8')
docs: Helper method which loads dataset and determines clipping range.
  
      Args:
        dataset_dir: location of the dataset.
        epsilon: maximum allowed size of adversarial perturbation.