class_docstr: Apply a list of transforms on multi-crop input. The transforms
  are Randomly applied to each crop using the specified probability.
  This is used in BYOL https://arxiv.org/pdf/2006.07733.pdf
  
  Multi-crops are several crops of a given image. This is most commonly
  used in contrastive learning. For example SimCLR, SwAV approaches use
  multi-crop input.
docstr: Instantiates ImgPilMultiCropRandomApply from configuration.
  
  Args:
      config (Dict): arguments for for the transform
  
  Returns:
      ImgPilMultiCropRandomApply instance.
code: def from_config(
      cls, config: Dict[str, Any]
  ) -> "ImgPilMultiCropRandomApply":
      """
      Instantiates ImgPilMultiCropRandomApply from configuration.
  
      Args:
          config (Dict): arguments for for the transform
  
      Returns:
          ImgPilMultiCropRandomApply instance.
      """
      transforms = config.get("transforms", [])
      prob = config.get("prob", [])
      logging.info(f"ImgPilMultiCropRandomApply | Using prob: {prob}")
      return cls(transforms=transforms, prob=prob)
  
file_path: vissl/vissl/data/ssl_transforms/img_pil_multicrop_random_apply.py
imports: import logging
  from typing import Any, Dict, List
  import torchvision.transforms
  from classy_vision.dataset.transforms import build_transform, register_transform
  from classy_vision.dataset.transforms.classy_transform import ClassyTransform
  from PIL import Image
label_desc: Use image node_id 4 for calling the ImgPilMultiCropRandomApply obj's underlying member method code with example usage: obj.from_config(cls, config) and returns: cls