Exemple #1
0
    def get_valloader(self, dataset=None):
        dataset = 'val' if dataset is None else dataset
        if self.configer.get('dataset', default=None) == 'default_cpm':
            dataset = DefaultCPMDataset(root_dir=self.configer.get('data', 'data_dir'), dataset=dataset,
                                     aug_transform=self.aug_val_transform,
                                     img_transform=self.img_transform,
                                     configer=self.configer)

        elif self.configer.get('dataset', default=None) == 'default_openpose':
            dataset = DefaultOpenPoseDataset(root_dir=self.configer.get('data', 'data_dir'), dataset=dataset,
                                             aug_transform=self.aug_val_transform,
                                             img_transform=self.img_transform,
                                             configer=self.configer),

        else:
            Log.error('{} dataset is invalid.'.format(self.configer.get('dataset')))
            exit(1)

        valloader = data.DataLoader(
            dataset,
            batch_size=self.configer.get('val', 'batch_size'), shuffle=False,
            num_workers=self.configer.get('data', 'workers'), pin_memory=True,
            collate_fn=lambda *args: collate(
                *args, trans_dict=self.configer.get('val', 'data_transformer')
            )
        )
        return valloader
Exemple #2
0
    def get_valloader(self):
        if self.configer.get('dataset', default=None) in [None, 'default']:
            dataset = DefaultDataset(root_dir=self.configer.get(
                'data', 'data_dir'),
                                     dataset='val',
                                     aug_transform=self.aug_val_transform,
                                     img_transform=self.img_transform,
                                     label_transform=self.label_transform,
                                     configer=self.configer)

        elif self.configer.get('dataset', default=None) == 'cityscapes':
            dataset = CityscapesDataset(root_dir=self.configer.get(
                'data', 'data_dir'),
                                        dataset='val',
                                        aug_transform=self.aug_val_transform,
                                        img_transform=self.img_transform,
                                        label_transform=self.label_transform,
                                        configer=self.configer)

        else:
            Log.error('{} dataset is invalid.'.format(
                self.configer.get('dataset')))
            exit(1)

        valloader = data.DataLoader(
            dataset,
            batch_size=self.configer.get('val', 'batch_size'),
            shuffle=False,
            num_workers=self.configer.get('data', 'workers'),
            pin_memory=True,
            collate_fn=lambda *args: collate(*args,
                                             trans_dict=self.configer.get(
                                                 'val', 'data_transformer')))

        return valloader
Exemple #3
0
    def get_trainloader(self):
        if self.configer.get('dataset', default=None) in [None, 'default']:
            dataset = DefaultDataset(root_dir=self.configer.get(
                'data', 'data_dir'),
                                     dataset='train',
                                     aug_transform=self.aug_train_transform,
                                     img_transform=self.img_transform,
                                     configer=self.configer)

        else:
            Log.error('{} dataset is invalid.'.format(
                self.configer.get('dataset')))
            exit(1)

        sampler = None
        if self.configer.get('network.distributed'):
            sampler = torch.utils.data.distributed.DistributedSampler(dataset)

        trainloader = data.DataLoader(
            dataset,
            sampler=sampler,
            batch_size=self.configer.get('train', 'batch_size'),
            shuffle=(sampler is None),
            num_workers=self.configer.get('data', 'workers'),
            pin_memory=True,
            drop_last=self.configer.get('data', 'drop_last'),
            collate_fn=lambda *args: collate(*args,
                                             trans_dict=self.configer.get(
                                                 'train', 'data_transformer')))

        return trainloader
Exemple #4
0
    def get_valloader(self, dataset=None):
        dataset = 'val' if dataset is None else dataset
        if self.configer.get('dataset') == 'default_pix2pix':
            dataset = DefaultPix2pixDataset(root_dir=self.configer.get('data', 'data_dir'), dataset=dataset,
                                            aug_transform=self.aug_val_transform,
                                            img_transform=self.img_transform,
                                            configer=self.configer)

        elif self.configer.get('dataset') == 'default_cyclegan':
            dataset = DefaultCycleGANDataset(root_dir=self.configer.get('data', 'data_dir'), dataset=dataset,
                                             aug_transform=self.aug_val_transform,
                                             img_transform=self.img_transform,
                                             configer=self.configer)

        elif self.configer.get('dataset') == 'default_facegan':
            dataset = DefaultFaceGANDataset(root_dir=self.configer.get('data', 'data_dir'),
                                            dataset=dataset, tag=self.configer.get('data', 'tag'),
                                            aug_transform=self.aug_val_transform,
                                            img_transform=self.img_transform,
                                            configer=self.configer)

        else:
            Log.error('{} val loader is invalid.'.format(self.configer.get('val', 'loader')))
            exit(1)

        valloader = data.DataLoader(
            dataset,
            batch_size=self.configer.get('val', 'batch_size'), shuffle=False,
            num_workers=self.configer.get('data', 'workers'), pin_memory=True,
            collate_fn=lambda *args: collate(
                *args, trans_dict=self.configer.get('val', 'data_transformer')
            )
        )

        return valloader
Exemple #5
0
    def get_trainloader(self):
        if self.configer.get('dataset', default=None) == 'default_pix2pix':
            dataset = DefaultPix2pixDataset(root_dir=self.configer.get('data', 'data_dir'), dataset='train',
                                            aug_transform=self.aug_train_transform,
                                            img_transform=self.img_transform,
                                            configer=self.configer)

        elif self.configer.get('dataset') == 'default_cyclegan':
            dataset = DefaultCycleGANDataset(root_dir=self.configer.get('data', 'data_dir'), dataset='train',
                                             aug_transform=self.aug_train_transform,
                                             img_transform=self.img_transform,
                                             configer=self.configer)

        elif self.configer.get('dataset') == 'default_facegan':
            dataset = DefaultFaceGANDataset(root_dir=self.configer.get('data', 'data_dir'),
                                            dataset='train', tag=self.configer.get('data', 'tag'),
                                            aug_transform=self.aug_train_transform,
                                            img_transform=self.img_transform,
                                            configer=self.configer)

        else:
            Log.error('{} train loader is invalid.'.format(self.configer.get('train', 'loader')))
            exit(1)

        trainloader = data.DataLoader(
            dataset,
            batch_size=self.configer.get('train', 'batch_size'), shuffle=True,
            num_workers=self.configer.get('data', 'workers'), pin_memory=True,
            drop_last=self.configer.get('data', 'drop_last'),
            collate_fn=lambda *args: collate(
                *args, trans_dict=self.configer.get('train', 'data_transformer')
            )
        )

        return trainloader
Exemple #6
0
    def get_testloader(self, test_dir=None, list_path=None, json_path=None):
        if self.configer.get('test.dataset',
                             default=None) in [None, 'default']:
            test_dir = test_dir if test_dir is not None else self.configer.get(
                'test', 'test_dir')
            dataset = DefaultDataset(test_dir=test_dir,
                                     aug_transform=self.aug_test_transform,
                                     img_transform=self.img_transform,
                                     configer=self.configer)

        elif self.configer.get('test.dataset') == 'list':
            list_path = list_path if list_path is not None else self.configer.get(
                'test', 'list_path')
            dataset = ListDataset(root_dir=self.configer.get(
                'test', 'root_dir'),
                                  list_path=list_path,
                                  aug_transform=self.aug_test_transform,
                                  img_transform=self.img_transform,
                                  configer=self.configer)

        elif self.configer.get('test.dataset') == 'json':
            json_path = json_path if json_path is not None else self.configer.get(
                'test', 'json_path')
            dataset = JsonDataset(root_dir=self.configer.get(
                'test', 'root_dir'),
                                  json_path=json_path,
                                  aug_transform=self.aug_test_transform,
                                  img_transform=self.img_transform,
                                  configer=self.configer)

        elif self.configer.get('test.dataset') == 'facegan':
            json_path = json_path if json_path is not None else self.configer.get(
                'test', 'json_path')
            dataset = FaceGANDataset(root_dir=self.configer.get(
                'test', 'root_dir'),
                                     json_path=json_path,
                                     aug_transform=self.aug_test_transform,
                                     img_transform=self.img_transform,
                                     configer=self.configer)

        else:
            Log.error('{} test dataset is invalid.'.format(
                self.configer.get('test.dataset')))
            exit(1)

        testloader = data.DataLoader(
            dataset,
            batch_size=self.configer.get('test.batch_size',
                                         default=torch.cuda.device_count()),
            shuffle=False,
            num_workers=self.configer.get('data', 'workers'),
            pin_memory=True,
            collate_fn=lambda *args: collate(*args,
                                             trans_dict=self.configer.get(
                                                 'test', 'data_transformer')))

        return testloader