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: Args:
      transforms ( List(tranforms) ): List of transforms that should be applied
                                     to each crop.
      prob (List(float)): Probability of RandomApply for the transforms
                          composition on each crop.
                          example: for 2 crop in BYOL, for solarization:
                                   prob = [0.0, 0.2]
code: def __init__(
      self, transforms: List[Dict[str, Any]], prob: List[float]
  ):
      """
      Args:
          transforms ( List(tranforms) ): List of transforms that should be applied
                                         to each crop.
          prob (List(float)): Probability of RandomApply for the transforms
                              composition on each crop.
                              example: for 2 crop in BYOL, for solarization:
                                       prob = [0.0, 0.2]
      """
  
      self.prob = prob
      self.transforms = None
      self._build_transform(transforms)
  
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 1 to create a new ImgPilMultiCropRandomApply object from inherited base classes: ClassyTransform with example: obj = ImgPilMultiCropRandomApply(transforms, prob)