class_docstr: Convert an input PIL image to Patches and Image
  This transform was proposed in PIRL - https://arxiv.org/abs/1912.01991.
  
  Input:
      PIL Image
  Returns:
      list containing N+1 elements
          + zeroth element: a RandomResizedCrop of the image
          + remainder: N patches extracted uniformly from a RandomResizedCrop
code: def __call__(self, image):
      cropped_image = self.crop_image_tx(image)
      cropped_patch_image = self.crop_patches_tx(image)
  
      # image to patch accepts a tensor or array
      image_array = np.array(cropped_patch_image).transpose(2, 0, 1)
      patch_arrays = self.image_to_patch_tx(image_array)
      patches = [
          PIL.Image.fromarray(x.transpose(1, 2, 0))
          for x in patch_arrays
      ]
  
      # permute patches in any order
      perm_order = np.random.permutation(self.num_patches)
      patches = [patches[x] for x in perm_order]
  
      # make image the first member of the list
      patches.insert(0, cropped_image)
      return patches
  
file_path: vissl/vissl/data/ssl_transforms/img_pil_to_patches_and_image.py
imports: from typing import Any, Dict
  import numpy
  import PIL
  import torchvision.transforms
  from classy_vision.dataset.transforms import register_transform
  from classy_vision.dataset.transforms.classy_transform import ClassyTransform
  from vissl.data.ssl_transforms.img_patches_tensor import ImgPatchesFromTensor
label_desc: Use image node_id 2 for calling the ImgPilToPatchesAndImage obj's underlying member method code with example usage: obj.__call__(image) and returns: patches