class_docstr: Apply RandAugment :cite:`cubuk2020randaugment` augmentation strategies.
  
  Args:
      n: the number of augmentations to apply sequentially.
      m: magnitude for all the augmentations, ranged from [0, 30].
      policy: candidate transformations. If None, a default candidate list will be used.
      transformation_matrix_mode: computation mode for the chained transformation matrix, via `.transform_matrix`
                                  attribute.
                                  If `silent`, transformation matrix will be computed silently and the non-rigid
                                  modules will be ignored as identity transformations.
                                  If `rigid`, transformation matrix will be computed silently and the non-rigid
                                  modules will trigger errors.
                                  If `skip`, transformation matrix will be totally ignored.
  
  Examples:
      >>> import kornia.augmentation as K
      >>> in_tensor = torch.rand(5, 3, 30, 30)
      >>> aug = K.AugmentationSequential(RandAugment(n=2, m=10))
      >>> aug(in_tensor).shape
      torch.Size([5, 3, 30, 30])
class_docstr_tok: ["Apply","RandAugment",":","cite",":","`","cubuk2020randaugment","`","augmentation","strategies",".","Args",":","n",":","the","number","of","augmentations","to","apply","sequentially",".","m",":","magnitude","for","all","the","augmentations",",","ranged","from","[","0",",","30","]",".","policy",":","candidate","transformations",".","If","None",",","a","default","candidate","list","will","be","used",".","transformation_matrix_mode",":","computation","mode","for","the","chained","transformation","matrix",",","via","`",".transform_matrix","`","attribute",".","If","`","silent","`",",","transformation","matrix","will","be","computed","silently","and","the","non-rigid","modules","will","be","ignored","as","identity","transformations",".","If","`","rigid","`",",","transformation","matrix","will","be","computed","silently","and","the","non-rigid","modules","will","trigger","errors",".","If","`","skip","`",",","transformation","matrix","will","be","totally","ignored",".","Examples",":",">",">",">","import","kornia.augmentation","as","K",">",">",">","in_tensor","=","torch.rand","(","5",",","3",",","30",",","30",")",">",">",">","aug","=","K.AugmentationSequential","(","RandAugment","(","n=2",",","m=10",")",")",">",">",">","aug","(","in_tensor",")",".shape","torch.Size","(","[","5",",","3",",","30",",","30","]",")"]
code: def __init__(
      self,
      n: int,
      m: int,
      policy: Optional[List[SUBPLOLICY_CONFIG]] = None,
      transformation_matrix_mode: str = "silent",
  ) -> None:
      if m <= 0 or m >= 30:
          raise ValueError(f"Expect `m` in [0, 30]. Got {m}.")
  
      if policy is None:
          _policy = default_policy
      else:
          _policy = policy
  
      super().__init__(
          _policy, transformation_matrix_mode=transformation_matrix_mode
      )
      selection_weights = torch.tensor([1.0 / len(self)] * len(self))
      self.rand_selector = Categorical(selection_weights)
      self.n = n
      self.m = m
  
file_path: kornia/kornia/augmentation/auto/rand_augment/rand_augment.py
imports: from typing import Dict, Iterator, List, Optional, Tuple, Union, cast
  import torch
  from torch.distributions import Categorical
  from kornia.augmentation.auto.base import SUBPLOLICY_CONFIG, PolicyAugmentBase
  from kornia.augmentation.auto.operations import OperationBase
  from kornia.augmentation.auto.operations.policy import PolicySequential
  from kornia.augmentation.container.params import ParamItem
  from kornia.core import Module, Tensor
  from .None import ops
label_desc: Use image node_id 1 to create a new RandAugment object from inherited base classes: PolicyAugmentBase with example: obj = RandAugment(n, m, policy, transformation_matrix_mode)