code: def rand_augment_transform(config_str, hparams):
      """
      RandAugment: Practical automated data augmentation... - https://arxiv.org/abs/1909.13719
  
      Create a RandAugment transform
      :param config_str: String defining configuration of random augmentation. Consists of multiple sections separated by
      dashes ('-'). The first section defines the specific variant of rand augment (currently only 'rand'). The remaining
      sections, not order sepecific determine
          'm' - integer magnitude of rand augment
          'n' - integer num layers (number of transform ops selected per image)
          'w' - integer probabiliy weight index (index of a set of weights to influence choice of op)
          'mstd' -  float std deviation of magnitude noise applied
          'inc' - integer (bool), use augmentations that increase in severity with magnitude (default: 0)
      Ex 'rand-m9-n3-mstd0.5' results in RandAugment with magnitude 9, num_layers 3, magnitude_std 0.5
      'rand-mstd1-w0' results in magnitude_std 1.0, weights 0, default magnitude of 10 and num_layers 2
      :param hparams: Other hparams (kwargs) for the RandAugmentation scheme
      :return: A PyTorch compatible Transform
      """
      magnitude = _MAX_LEVEL  # default to _MAX_LEVEL for magnitude (currently 10)
      num_layers = 2  # default to 2 ops per image
      weight_idx = (
          None  # default to no probability weights for op choice
      )
      transforms = _RAND_TRANSFORMS
      config = config_str.split("-")
      assert config[0] == "rand"
      config = config[1:]
      for c in config:
          cs = re.split(r"(\d.*)", c)
          if len(cs) < 2:
              continue
          key, val = cs[:2]
          if key == "mstd":
              # noise param injected via hparams for now
              hparams.setdefault("magnitude_std", float(val))
          elif key == "inc":
              if bool(val):
                  transforms = _RAND_INCREASING_TRANSFORMS
          elif key == "m":
              magnitude = int(val)
          elif key == "n":
              num_layers = int(val)
          elif key == "w":
              weight_idx = int(val)
          else:
              assert NotImplementedError
      ra_ops = rand_augment_ops(
          magnitude=magnitude, hparams=hparams, transforms=transforms
      )
      choice_weights = (
          None
          if weight_idx is None
          else _select_rand_weights(weight_idx)
      )
      return RandAugment(
          ra_ops, num_layers, choice_weights=choice_weights
      )
  
imports: import math
  import numpy
  import random
  import re
  import PIL
  from PIL import Image, ImageEnhance, ImageOps
label_desc: Use image node_id 35 for calling a global function with example usage: rand_augment_transform(config_str, hparams) and returns: RandAugment