class_docstr: We use the "DefaultTrainer" which contains pre-defined default logic for
  standard training workflow. They may not work for you, especially if you
  are working on a new research project. In that case you can write your
  own training loop. You can use "tools/plain_train_net.py" as an example.
code: def build_train_loader(cls, cfg):
      if cfg.INPUT.POINT_SUP:
          mapper = PointSupDatasetMapper(cfg, is_train=True)
      else:
          mapper = None
      return build_detection_train_loader(cfg, mapper=mapper)
  
file_path: detectron2/projects/PointSup/train_net.py
imports: import os
  import detectron2.utils.comm
  from detectron2.checkpoint import DetectionCheckpointer
  from detectron2.config import get_cfg
  from detectron2.data import MetadataCatalog, build_detection_train_loader
  from detectron2.engine import DefaultTrainer, default_argument_parser, default_setup, launch
  from detectron2.evaluation import COCOEvaluator, DatasetEvaluators, verify_results
  from detectron2.projects.point_rend import add_pointrend_config
  from detectron2.utils.logger import setup_logger
  from point_sup import PointSupDatasetMapper, add_point_sup_config
label_desc: Use image node_id 2 for calling the Trainer obj's underlying member method code with example usage: obj.build_train_loader(cls, cfg) and returns: build_detection_train_loader