class_docstr: Lighting noise(AlexNet - style PCA - based noise).
  This trick was originally used in `AlexNet paper
  <https://papers.nips.cc/paper/4824-imagenet-classification
  -with-deep-convolutional-neural-networks.pdf>`_
  
  The eigen values and eigen vectors, are taken from caffe2 `ImageInputOp.h
  <https://github.com/pytorch/pytorch/blob/master/caffe2/image/
  image_input_op.h#L265>`_.
docstr: img: (C x H x W) Tensor with values in range [0.0, 1.0]
docstr_tok: ["img",":","(","C","x","H","x","W",")","Tensor","with","values","in","range","[","0.0",",","1.0","]"]
code: def __call__(self, img):
      """
      img: (C x H x W) Tensor with values in range [0.0, 1.0]
      """
      assert (
          img.min() >= 0.0 and img.max() <= 1.0
      ), "Image should be normalized by 255 and be in range [0.0, 1.0]"
      if self.alphastd == 0:
          return img
  
      alpha = img.new().resize_(3).normal_(0, self.alphastd)
      rgb = (
          self.eigvec.type_as(img)
          .clone()
          .mul(alpha.view(1, 3).expand(3, 3))
          .mul(self.eigval.view(1, 3).expand(3, 3))
          .sum(1)
          .squeeze()
      )
  
      return img.add(rgb.view(3, 1, 1).expand_as(img))
  
imports: import torch
  from .None import register_transform
  from .classy_transform import ClassyTransform
label_desc: Use image node_id 2 for calling the LightingTransform obj's underlying member method code with example usage: obj.__call__(img) and returns: img, img