docstr: Randomly rotate an image between (-degrees, degrees). If the image
  has multiple channels, the same rotation will be applied to each channel.
  
  Arguments
  ---------
  rotation_range : integer or float
      image will be rotated between (-degrees, degrees) degrees
  
  interp : string in {'bilinear', 'nearest'} or list of strings
      type of interpolation to use. You can provide a different
      type of interpolation for each input, e.g. if you have two
      inputs then you can say `interp=['bilinear','nearest']
  
  lazy    : boolean
      if true, only create the affine transform matrix and return that
      if false, perform the transform on the tensor and return the tensor
docstr_tok: ["Randomly","rotate","an","image","between","(","-degrees",",","degrees",")",".","If","the","image","has","multiple","channels",",","the","same","rotation","will","be","applied","to","each","channel",".","Arguments","--","--","--","--","-","rotation_range",":","integer","or","float","image","will","be","rotated","between","(","-degrees",",","degrees",")","degrees","interp",":","string","in","{","'bilinear","'",",","'nearest","'","}","or","list","of","strings","type","of","interpolation","to","use",".","You","can","provide","a","different","type","of","interpolation","for","each","input",",","e.g",".","if","you","have","two","inputs","then","you","can","say","`","interp=","[","'bilinear","'",",","'nearest","'","]","lazy",":","boolean","if","true",",","only","create","the","affine","transform","matrix","and","return","that","if","false",",","perform","the","transform","on","the","tensor","and","return","the","tensor"]
code: def __init__(self, rotation_range, interp="bilinear", lazy=False):
      """
      Randomly rotate an image between (-degrees, degrees). If the image
      has multiple channels, the same rotation will be applied to each channel.
  
      Arguments
      ---------
      rotation_range : integer or float
          image will be rotated between (-degrees, degrees) degrees
  
      interp : string in {'bilinear', 'nearest'} or list of strings
          type of interpolation to use. You can provide a different
          type of interpolation for each input, e.g. if you have two
          inputs then you can say `interp=['bilinear','nearest']
  
      lazy    : boolean
          if true, only create the affine transform matrix and return that
          if false, perform the transform on the tensor and return the tensor
      """
      self.rotation_range = rotation_range
      self.interp = interp
      self.lazy = lazy
  
imports: import math
  import random
  import torch
  from ..utils import th_affine2d, th_random_choice
label_desc: Use image node_id 1 to create a new RandomRotate object  with example: obj = RandomRotate(rotation_range, interp, lazy)