class_docstr: Mixup/Cutmix that applies different params to each element or whole batch
  
  Args:
      mixup_alpha (float): mixup alpha value, mixup is active if > 0.
      cutmix_alpha (float): cutmix alpha value, cutmix is active if > 0.
      cutmix_minmax (List[float]): cutmix min/max image ratio, cutmix is active and uses this vs alpha if not None.
      prob (float): probability of applying mixup or cutmix per batch or element
      switch_prob (float): probability of switching to cutmix instead of mixup when both are active
      mode (str): how to apply mixup/cutmix params (per 'batch', 'pair' (pair of elements), 'elem' (element)
      correct_lam (bool): apply lambda correction when cutmix bbox clipped by image borders
      label_smoothing (float): apply label smoothing to the mixed target tensor
      num_classes (int): number of classes for target
class_docstr_tok: ["Mixup\/Cutmix","that","applies","different","params","to","each","element","or","whole","batch","Args",":","mixup_alpha","(","float",")",":","mixup","alpha","value",",","mixup","is","active","if",">","0.","cutmix_alpha","(","float",")",":","cutmix","alpha","value",",","cutmix","is","active","if",">","0.","cutmix_minmax","(","List","[","float","]",")",":","cutmix","min\/max","image","ratio",",","cutmix","is","active","and","uses","this","vs","alpha","if","not","None",".","prob","(","float",")",":","probability","of","applying","mixup","or","cutmix","per","batch","or","element","switch_prob","(","float",")",":","probability","of","switching","to","cutmix","instead","of","mixup","when","both","are","active","mode","(","str",")",":","how","to","apply","mixup\/cutmix","params","(","per","'batch","'",",","'pair","'","(","pair","of","elements",")",",","'elem","'","(","element",")","correct_lam","(","bool",")",":","apply","lambda","correction","when","cutmix","bbox","clipped","by","image","borders","label_smoothing","(","float",")",":","apply","label","smoothing","to","the","mixed","target","tensor","num_classes","(","int",")",":","number","of","classes","for","target"]
code: def __call__(self, x, target):
      assert (
          len(x) % 2 == 0
      ), "Batch size should be even when using this"
      if self.mode == "elem":
          lam = self._mix_elem(x)
      elif self.mode == "pair":
          lam = self._mix_pair(x)
      else:
          lam = self._mix_batch(x)
      target = mixup_target(
          target, self.num_classes, lam, self.label_smoothing
      )
      return x, target
  
imports: import numpy
  import torch
label_desc: Use image node_id 7 for calling the Mixup obj's underlying member method code with example usage: obj.__call__(x, target) and returns: x,  target