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: Instantiates ShuffleImgPatches from configuration.
  
  Args:
      config (Dict): arguments for for the transform
  
  Returns:
      ShuffleImgPatches instance.
docstr_tok: ["Instantiates","ShuffleImgPatches","from","configuration",".","Args",":","config","(","Dict",")",":","arguments","for","for","the","transform","Returns",":","ShuffleImgPatches","instance","."]
code: def from_config(cls, config: Dict[str, Any]) -> "ShuffleImgPatches":
      """
      Instantiates ShuffleImgPatches from configuration.
  
      Args:
          config (Dict): arguments for for the transform
  
      Returns:
          ShuffleImgPatches instance.
      """
      assert "perm_file" in config, "Please specify the perm_file"
      return cls(perm_file=config["perm_file"])
  
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 4 for calling the ShuffleImgPatches obj's underlying member method code with example usage: obj.from_config(cls, config) and returns: cls