(self, batch_size, is_distributed, testdev=False)
| 200 | return scheduler |
| 201 | |
| 202 | def get_eval_loader(self, batch_size, is_distributed, testdev=False): |
| 203 | from yolox.data import COCODataset, ValTransform |
| 204 | |
| 205 | valdataset = COCODataset( |
| 206 | data_dir=None, |
| 207 | json_file=self.val_ann if not testdev else "image_info_test-dev2017.json", |
| 208 | name="val2017" if not testdev else "test2017", |
| 209 | img_size=self.test_size, |
| 210 | preproc=ValTransform( |
| 211 | rgb_means=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225) |
| 212 | ), |
| 213 | ) |
| 214 | |
| 215 | if is_distributed: |
| 216 | batch_size = batch_size // dist.get_world_size() |
| 217 | sampler = torch.utils.data.distributed.DistributedSampler( |
| 218 | valdataset, shuffle=False |
| 219 | ) |
| 220 | else: |
| 221 | sampler = torch.utils.data.SequentialSampler(valdataset) |
| 222 | |
| 223 | dataloader_kwargs = { |
| 224 | "num_workers": self.data_num_workers, |
| 225 | "pin_memory": True, |
| 226 | "sampler": sampler, |
| 227 | } |
| 228 | dataloader_kwargs["batch_size"] = batch_size |
| 229 | val_loader = torch.utils.data.DataLoader(valdataset, **dataloader_kwargs) |
| 230 | |
| 231 | return val_loader |
| 232 | |
| 233 | def get_evaluator(self, batch_size, is_distributed, testdev=False): |
| 234 | from yolox.evaluators import COCOEvaluator |
no test coverage detected