def __init__(self, cf, model): self.cf = cf self.model = model # Compose preprocesing function for dataloaders if self.cf.problem_type == 'detection': self.img_preprocessing = standard_transforms.Compose([ Random_distort(self.cf), preproces_input(self.cf), standard_transforms.ToTensor() ]) self.test_img_preprocessing = standard_transforms.Compose( [preproces_input(self.cf), standard_transforms.ToTensor()]) self.train_transformation = ComposeObjDet( [CropObjDet(self.cf), RandomHorizontalFlipObjDet(self.cf)]) self.resize = ComposeResize([Resize(self.cf)]) else: self.img_preprocessing = standard_transforms.Compose([ Random_distort(self.cf), preproces_input(self.cf), ToTensor() ]) self.test_img_preprocessing = standard_transforms.Compose( [preproces_input(self.cf), ToTensor()]) self.train_transformation = ComposeSemSeg( [CropSegSem(self.cf), RandomHorizontalFlipSegSem(self.cf)])
def build_valid(self, valid_samples, images_txt, gt_txt, resize_image, batch_size): if self.cf.problem_type == 'segmentation': self.loader_set = fromFileDatasetSegmentation(self.cf, images_txt, gt_txt, valid_samples, resize_image, preprocess=self.img_preprocessing, transform=None, valid=True) elif self.cf.problem_type == 'classification': if self.cf.valid_path is not None: self.loader_set = fromPathDatasetClassification(self.cf, self.cf.valid_path, resize_image, preprocess=self.img_preprocessing, transform=None, valid=True) else: self.loader_set = fromFileDatasetClassification(self.cf, images_txt, gt_txt, valid_samples, resize_image, preprocess=self.img_preprocessing, transform=None, valid=True) elif self.cf.problem_type == 'detection': self.train_transformation = ComposeObjDet([Resize(self.cf)]) self.loader_set = fromFileDatasetDetection(self.cf, images_txt, gt_txt, valid_samples, resize_image, preprocess=self.img_preprocessing, transform=None, valid=True, resize_process=self.resize) self.loader = DataLoader(self.loader_set, batch_size=batch_size, num_workers=4)