code: def _get_dataloader(
      net,
      train_dataset,
      val_dataset,
      data_shape,
      batch_size,
      num_workers,
      args,
  ):
      """Get dataloader."""
      width, height = data_shape, data_shape
      # stack image, all targets generated
      batchify_fn = Tuple(
          *(
              [Stack() for _ in range(6)]
              + [Pad(axis=0, pad_val=-1) for _ in range(1)]
          )
      )
      if args.yolo3.no_random_shape:
          train_loader = gluon.data.DataLoader(
              train_dataset.transform(
                  YOLO3DefaultTrainTransform(
                      width, height, net, mixup=args.train.mixup
                  )
              ),
              batch_size,
              True,
              batchify_fn=batchify_fn,
              last_batch="rollover",
              num_workers=num_workers,
          )
      else:
          transform_fns = [
              YOLO3DefaultTrainTransform(
                  x * 32, x * 32, net, mixup=args.train.mixup
              )
              for x in range(10, 20)
          ]
          train_loader = RandomTransformDataLoader(
              transform_fns,
              train_dataset,
              batch_size=batch_size,
              interval=10,
              last_batch="rollover",
              shuffle=True,
              batchify_fn=batchify_fn,
              num_workers=num_workers,
          )
      val_batchify_fn = Tuple(Stack(), Pad(pad_val=-1))
      val_loader = gluon.data.DataLoader(
          val_dataset.transform(
              YOLO3DefaultValTransform(width, height)
          ),
          batch_size,
          False,
          batchify_fn=val_batchify_fn,
          last_batch="keep",
          num_workers=num_workers,
      )
      train_eval_loader = gluon.data.DataLoader(
          train_dataset.transform(
              YOLO3DefaultValTransform(width, height)
          ),
          batch_size,
          False,
          batchify_fn=val_batchify_fn,
          last_batch="keep",
          num_workers=num_workers,
      )
      return train_loader, val_loader, train_eval_loader
  
file_path: gluon-cv/gluoncv/auto/estimators/yolo/utils.py
imports: import os
  from mxnet import gluon
  from ....data import MixupDetection
  from ....data.batchify import Tuple, Stack, Pad
  from ....data.dataloader import RandomTransformDataLoader
  from ....data.transforms.presets.yolo import YOLO3DefaultTrainTransform
  from ....data.transforms.presets.yolo import YOLO3DefaultValTransform
  from ....None import data
  from ....utils.metrics.voc_detection import VOC07MApMetric
  from ....utils.metrics.coco_detection import COCODetectionMetric
label_desc: Use image node_id 2 for calling a global function with example usage: _get_dataloader(net, train_dataset, val_dataset, data_shape, batch_size, num_workers, args) and returns: train_loader,  val_loader,  train_eval_loader