code: def train_batch_fn(data, ctx):
      """split and load data in GPU"""
      template = split_and_load(data[0], ctx_list=ctx, batch_axis=0)
      search = split_and_load(data[1], ctx_list=ctx, batch_axis=0)
      label_cls = split_and_load(data[2], ctx_list=ctx, batch_axis=0)
      label_loc = split_and_load(data[3], ctx_list=ctx, batch_axis=0)
      label_loc_weight = split_and_load(
          data[4], ctx_list=ctx, batch_axis=0
      )
      return template, search, label_cls, label_loc, label_loc_weight
  
file_path: gluon-cv/docs/tutorials/tracking/train_siamrpn.py
imports: import mxnet
  import time
  import numpy
  from mxnet import gluon, nd, autograd
  from mxnet.contrib import amp
  import gluoncv
  from gluoncv.utils import LRScheduler, LRSequential, split_and_load
  from gluoncv.data.tracking_data.track import TrkDataset
  from gluoncv.model_zoo import get_model
  from gluoncv.loss import SiamRPNLoss
label_desc: Use image node_id 1 for calling a global function with example usage: train_batch_fn(data, ctx) and returns: template,  search,  label_cls,  label_loc,  label_loc_weight