in train_net.py [0:0]
def do_test(cfg, model):
results = OrderedDict()
for d, dataset_name in enumerate(cfg.DATASETS.TEST):
if cfg.MODEL.RESET_CLS_TESTS:
reset_cls_test(
model,
cfg.MODEL.TEST_CLASSIFIERS[d],
cfg.MODEL.TEST_NUM_CLASSES[d])
mapper = None if cfg.INPUT.TEST_INPUT_TYPE == 'default' \
else DatasetMapper(
cfg, False, augmentations=build_custom_augmentation(cfg, False))
data_loader = build_detection_test_loader(cfg, dataset_name, mapper=mapper)
output_folder = os.path.join(
cfg.OUTPUT_DIR, "inference_{}".format(dataset_name))
evaluator_type = MetadataCatalog.get(dataset_name).evaluator_type
if evaluator_type == "lvis" or cfg.GEN_PSEDO_LABELS:
evaluator = LVISEvaluator(dataset_name, cfg, True, output_folder)
elif evaluator_type == 'coco':
if dataset_name == 'coco_generalized_zeroshot_val':
# Additionally plot mAP for 'seen classes' and 'unseen classes'
evaluator = CustomCOCOEvaluator(dataset_name, cfg, True, output_folder)
else:
evaluator = COCOEvaluator(dataset_name, cfg, True, output_folder)
elif evaluator_type == 'oid':
evaluator = OIDEvaluator(dataset_name, cfg, True, output_folder)
else:
assert 0, evaluator_type
results[dataset_name] = inference_on_dataset(
model, data_loader, evaluator)
if comm.is_main_process():
logger.info("Evaluation results for {} in csv format:".format(
dataset_name))
print_csv_format(results[dataset_name])
if len(results) == 1:
results = list(results.values())[0]
return results