class_docstr: Apply rotation to a PIL Image. Samples rotation angle from a set of
  predefined rotation angles.
  
  Predefined rotation angles are sampled at
  equal intervals in the [0, 360) angle space where the number of angles
  is specified by `num_angles`.
  
  This transform was used in RotNet - https://arxiv.org/abs/1803.07728
code: def __call__(self, image):
      label = torch.randint(self.num_angles, [1]).item()
      img = TF.rotate(image, self.angles[label])
      return img, label
  
file_path: vissl/vissl/data/ssl_transforms/img_rotate_pil.py
imports: import logging
  from typing import Any, Dict
  import torch
  import torchvision.transforms.functional
  from classy_vision.dataset.transforms import register_transform
  from classy_vision.dataset.transforms.classy_transform import ClassyTransform
label_desc: Use image node_id 2 for calling the ImgRotatePil obj's underlying member method code with example usage: obj.__call__(image) and returns: img,  label