| 88 | |
| 89 | |
| 90 | class _FGVCDataModule(_BaseDataModule): |
| 91 | def transforms(self, crop_scale=(0.2, 1), val=False): |
| 92 | if not val: |
| 93 | tform = transforms.Compose([ |
| 94 | transforms.RandomResizedCrop(self.size, scale=crop_scale), |
| 95 | transforms.RandomHorizontalFlip(0.5), |
| 96 | transforms.ColorJitter(0.25, 0.25, 0.25), |
| 97 | to_tensor, |
| 98 | ]) |
| 99 | else: |
| 100 | tform = transforms.Compose([ |
| 101 | transforms.Resize([int(round(8 * x / 7)) for x in self.size]), |
| 102 | transforms.CenterCrop(self.size), |
| 103 | to_tensor, |
| 104 | ]) |
| 105 | return tform |
| 106 | |
| 107 | def setup(self, stage=None): |
| 108 | self.data_train = self.dataclass( |
| 109 | root = f'{self.data_dir}/train', |
| 110 | transform = self.transforms(val=not self.augment) |
| 111 | ) |
| 112 | if self.num_samples is not None: |
| 113 | self.data_train = DataRepeater(self.data_train, self.num_samples) |
| 114 | |
| 115 | self.data_val = self.dataclass( |
| 116 | root = f'{self.data_dir}/val', |
| 117 | transform = self.transforms(val=True) |
| 118 | ) |
| 119 | |
| 120 | |
| 121 | class CubDataModule(_FGVCDataModule): |
nothing calls this directly
no outgoing calls
no test coverage detected