class_docstr: Random rotate image between two rotation angles with a random probability.
  
  Attributes:
      prob:
          Probability with which image is rotated.
      degrees:
          Range of degrees to select from. If degrees is a number instead of a sequence like (min, max),
          the range of degrees will be (-degrees, +degrees). The image is rotated counter-clockwise with
          a random angle in the (min, max) range or in the (-degrees, +degrees) range.
class_docstr_tok: ["Random","rotate","image","between","two","rotation","angles","with","a","random","probability",".","Attributes",":","prob",":","Probability","with","which","image","is","rotated",".","degrees",":","Range","of","degrees","to","select","from",".","If","degrees","is","a","number","instead","of","a","sequence","like","(","min",",","max",")",",","the","range","of","degrees","will","be","(","-degrees",",","+degrees",")",".","The","image","is","rotated","counter-clockwise","with","a","random","angle","in","the","(","min",",","max",")","range","or","in","the","(","-degrees",",","+degrees",")","range","."]
code: def __init__(
      self, prob: float, degrees: Union[float, Tuple[float, float]]
  ):
      self.transform = T.RandomApply(
          [T.RandomRotation(degrees=degrees)], p=prob
      )
  
file_path: lightly/lightly/transforms/rotation.py
imports: from typing import Tuple, Union
  import numpy
  import torchvision.transforms
  from PIL.Image import Image
  from torch import Tensor
  from torchvision.transforms import functional
label_desc: Use image node_id 1 to create a new RandomRotateDegrees object  with example: obj = RandomRotateDegrees(prob, degrees)