(cfg, )
| 404 | |
| 405 | |
| 406 | def build_train_dataloader(cfg, ): |
| 407 | dataset_names = cfg['DATASETS']['TRAIN'] |
| 408 | |
| 409 | loaders = {} |
| 410 | cfg = copy.deepcopy(cfg) |
| 411 | for dataset_name in dataset_names: |
| 412 | cfg = get_config_from_name(cfg, dataset_name) |
| 413 | mapper_name = cfg['INPUT']['DATASET_MAPPER_NAME'] |
| 414 | # Sam data dataset mapper |
| 415 | if mapper_name == "sam": |
| 416 | # print("using SamBaselineDatasetMapperJSON") |
| 417 | # mapper = SamBaselineDatasetMapperJSON(cfg, True) |
| 418 | mapper = SamBaselineDatasetMapper(cfg, True) |
| 419 | loaders['sam'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 420 | elif mapper_name == "pascal_part": |
| 421 | mapper = MaskFormerInstanceDatasetMapper(cfg, True) |
| 422 | loaders['pascal'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 423 | # pascal_part dataset mapper |
| 424 | elif mapper_name == "pascal_part_lsj": |
| 425 | mapper = PascalInstanceNewBaselineDatasetMapper(cfg, True) |
| 426 | loaders['pascal'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 427 | # shared part dataset mapper |
| 428 | elif mapper_name == "part_all_filter_whole_lsj": |
| 429 | mapper = PartFilterWholeInstanceNewBaselineDatasetMapper(cfg, True,dataset_name=dataset_name) |
| 430 | # FIXME shared loader for all part data |
| 431 | name = dataset_name.split('_')[0] |
| 432 | loaders[name] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 433 | # Semantic segmentation dataset mapper |
| 434 | elif mapper_name == "mask_former_semantic": |
| 435 | mapper = MaskFormerSemanticDatasetMapper(cfg, True) |
| 436 | loaders['coco'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 437 | # Panoptic segmentation dataset mapper |
| 438 | elif mapper_name == "mask_former_panoptic": # TODO: Hack for ade training; should add ade name |
| 439 | mapper = MaskFormerPanopticDatasetMapper(cfg, True) |
| 440 | loaders['ade'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 441 | # Instance segmentation dataset mapper |
| 442 | elif mapper_name == "mask_former_instance": |
| 443 | mapper = MaskFormerInstanceDatasetMapper(cfg, True) |
| 444 | loaders['coco'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 445 | # coco instance segmentation lsj new baseline |
| 446 | elif mapper_name == "coco_instance_lsj": |
| 447 | mapper = COCOInstanceNewBaselineDatasetMapper(cfg, True) |
| 448 | loaders['coco'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 449 | # coco panoptic segmentation lsj new baseline |
| 450 | elif mapper_name == "coco_panoptic_lsj": |
| 451 | mapper = COCOPanopticNewBaselineDatasetMapper(cfg, True) |
| 452 | loaders['coco'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 453 | elif mapper_name == "coco_interactive_panoptic_lsj": # FIXME filter empty instances |
| 454 | mapper = COCOInteractivePanopticNewBaselineDatasetMapper(cfg, True) |
| 455 | loaders['coco'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 456 | elif mapper_name == "mask_former_panoptic_interactive": # FIXME filter empty instances |
| 457 | mapper = MaskFormerPanopticDatasetMapperInteractive(cfg, True, dataset_name=dataset_name) |
| 458 | loaders['ade'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 459 | elif mapper_name == "object365": |
| 460 | mapper = O365InstanceNewBaselineDatasetMapper(cfg, True) # Use lsj instance mapper for o365 |
| 461 | loaders['o365'] = build_detection_train_loader(cfg, dataset_name=dataset_name, mapper=mapper) |
| 462 | else: |
| 463 | mapper = None |
no test coverage detected