class_docstr: This transform is used to shuffle the list of tensors (usually
  image patches of shape C x H x W) according to a randomly selected
  permutation from a pre-defined set of permutations.
  
  This is a common operation used in Jigsaw approach https://arxiv.org/abs/1603.09246
docstr: Args:
      perm_file (string): path to the file containing pre-defined permutations.
docstr_tok: ["Args",":","perm_file","(","string",")",":","path","to","the","file","containing","pre-defined","permutations","."]
code: def __init__(self, perm_file: str):
      """
      Args:
          perm_file (string): path to the file containing pre-defined permutations.
      """
  
      self.perm_file = perm_file
      self.perm_loaded = False
      self.perms = None
  
file_path: vissl/vissl/data/ssl_transforms/shuffle_img_patches.py
imports: import logging
  import os
  import tempfile
  from typing import Any, Dict
  import numpy
  import torch
  from classy_vision.dataset.transforms import register_transform
  from classy_vision.dataset.transforms.classy_transform import ClassyTransform
  from iopath.common.file_io import g_pathmgr
  from vissl.utils.io import cache_url, is_url, load_file
label_desc: Use image node_id 1 to create a new ShuffleImgPatches object from inherited base classes: ClassyTransform with example: obj = ShuffleImgPatches(perm_file)