class_docstr: We use the "DefaultTrainer" which contains a number pre-defined 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 use the cleaner
  "SimpleTrainer", or write your own training loop.
code: def build_train_loader(cls, cfg):
      if "SemanticSegmentor" in cfg.MODEL.META_ARCHITECTURE:
          mapper = DatasetMapper(
              cfg,
              is_train=True,
              augmentations=build_sem_seg_train_aug(cfg),
          )
      else:
          mapper = None
      return build_detection_train_loader(cfg, mapper=mapper)
  
file_path: detectron2/projects/PointRend/train_net.py
imports: import os
  import detectron2.data.transforms
  import detectron2.utils.comm
  from detectron2.checkpoint import DetectionCheckpointer
  from detectron2.config import get_cfg
  from detectron2.data import DatasetMapper, MetadataCatalog, build_detection_train_loader
  from detectron2.engine import DefaultTrainer, default_argument_parser, default_setup, launch
  from detectron2.evaluation import CityscapesInstanceEvaluator, CityscapesSemSegEvaluator, COCOEvaluator, DatasetEvaluators, LVISEvaluator, SemSegEvaluator, verify_results
  from detectron2.projects.point_rend import ColorAugSSDTransform, add_pointrend_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