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.
class_docstr_tok: ["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_evaluator(cls, cfg, dataset_name, output_folder=None):
      return build_evaluator(cfg, dataset_name, output_folder)
  
file_path: detectron2/tools/train_net.py
imports: import logging
  import os
  from collections import OrderedDict
  import detectron2.utils.comm
  from detectron2.checkpoint import DetectionCheckpointer
  from detectron2.config import get_cfg
  from detectron2.data import MetadataCatalog
  from detectron2.engine import DefaultTrainer, default_argument_parser, default_setup, hooks, launch
  from detectron2.evaluation import CityscapesInstanceEvaluator, CityscapesSemSegEvaluator, COCOEvaluator, COCOPanopticEvaluator, DatasetEvaluators, LVISEvaluator, PascalVOCDetectionEvaluator, SemSegEvaluator, verify_results
  from detectron2.modeling import GeneralizedRCNNWithTTA
label_desc: Use image node_id 1 for calling the Trainer obj's underlying member method code with example usage: obj.build_evaluator(cls, cfg, dataset_name, output_folder) and returns: build_evaluator