class_docstr: Default YOLO training transform which includes tons of image augmentations.
  
  Parameters
  ----------
  width : int
      Image width.
  height : int
      Image height.
  net : mxnet.gluon.HybridBlock, optional
      The yolo network.
  
      .. hint::
  
          If net is ``None``, the transformation will not generate training targets.
          Otherwise it will generate training targets to accelerate the training phase
          since we push some workload to CPU workers instead of GPUs.
  
  mean : array-like of size 3
      Mean pixel values to be subtracted from image tensor. Default is [0.485, 0.456, 0.406].
  std : array-like of size 3
      Standard deviation to be divided from image. Default is [0.229, 0.224, 0.225].
  iou_thresh : float
      IOU overlap threshold for maximum matching, default is 0.5.
  box_norm : array-like of size 4, default is (0.1, 0.1, 0.2, 0.2)
      Std value to be divided from encoded values.
class_docstr_tok: ["Default","YOLO","training","transform","which","includes","tons","of","image","augmentations",".","Parameters","--","--","--","--","--","width",":","int","Image","width",".","height",":","int","Image","height",".","net",":","mxnet.gluon.HybridBlock",",","optional","The","yolo","network",".","..","hint",":",":","If","net","is","``","None","``",",","the","transformation","will","not","generate","training","targets",".","Otherwise","it","will","generate","training","targets","to","accelerate","the","training","phase","since","we","push","some","workload","to","CPU","workers","instead","of","GPUs",".","mean",":","array-like","of","size","3","Mean","pixel","values","to","be","subtracted","from","image","tensor",".","Default","is","[","0.485",",","0.456",",","0.406","]",".","std",":","array-like","of","size","3","Standard","deviation","to","be","divided","from","image",".","Default","is","[","0.229",",","0.224",",","0.225","]",".","iou_thresh",":","float","IOU","overlap","threshold","for","maximum","matching",",","default","is","0.5.","box_norm",":","array-like","of","size","4",",","default","is","(","0.1",",","0.1",",","0.2",",","0.2",")","Std","value","to","be","divided","from","encoded","values","."]
docstr: Apply transform to training image/label.
docstr_tok: ["Apply","transform","to","training","image\/label","."]
code: def __call__(self, src, label):
      """Apply transform to training image/label."""
      # random color jittering
      img = experimental.image.random_color_distort(src)
  
      # random expansion with prob 0.5
      if np.random.uniform(0, 1) > 0.5:
          img, expand = timage.random_expand(
              img, fill=[m * 255 for m in self._mean]
          )
          bbox = tbbox.translate(
              label, x_offset=expand[0], y_offset=expand[1]
          )
      else:
          img, bbox = img, label
  
      # random cropping
      h, w, _ = img.shape
      bbox, crop = experimental.bbox.random_crop_with_constraints(
          bbox, (w, h)
      )
      x0, y0, w, h = crop
      img = mx.image.fixed_crop(img, x0, y0, w, h)
  
      # resize with random interpolation
      h, w, _ = img.shape
      interp = np.random.randint(0, 5)
      img = timage.imresize(
          img, self._width, self._height, interp=interp
      )
      bbox = tbbox.resize(bbox, (w, h), (self._width, self._height))
  
      # random horizontal flip
      h, w, _ = img.shape
      img, flips = timage.random_flip(img, px=0.5)
      bbox = tbbox.flip(bbox, (w, h), flip_x=flips[0])
  
      # to tensor
      img = mx.nd.image.to_tensor(img)
      img = mx.nd.image.normalize(img, mean=self._mean, std=self._std)
  
      if self._target_generator is None:
          return img, bbox.astype(img.dtype)
  
      # generate training target so cpu workers can help reduce the workload on gpu
      gt_bboxes = mx.nd.array(bbox[np.newaxis, :, :4])
      gt_ids = mx.nd.array(bbox[np.newaxis, :, 4:5])
      if self._mixup:
          gt_mixratio = mx.nd.array(bbox[np.newaxis, :, -1:])
      else:
          gt_mixratio = None
      (
          objectness,
          center_targets,
          scale_targets,
          weights,
          class_targets,
      ) = self._target_generator(
          self._fake_x,
          self._feat_maps,
          self._anchors,
          self._offsets,
          gt_bboxes,
          gt_ids,
          gt_mixratio,
      )
      return (
          img,
          objectness[0],
          center_targets[0],
          scale_targets[0],
          weights[0],
          class_targets[0],
          gt_bboxes[0],
      )
  
file_path: gluon-cv/gluoncv/data/transforms/presets/yolo.py
imports: from __future__ import absolute_import
  import numpy
  import mxnet
  from mxnet import autograd
  from ..None import bbox
  from ..None import image
  from ..None import experimental
label_desc: Use image node_id 3 for calling the YOLO3DefaultTrainTransform obj's underlying member method code with example usage: obj.__call__(src, label) and returns: img,  objectness,  center_targets,  scale_targets,  weights,  class_targets,  gt_bboxes, img,  bbox