def test_pad_collation(self, t_type, collate_method, transform): if t_type == dict: dataset = CacheDataset(self.dict_data, transform, progress=False) else: dataset = _Dataset(self.list_data, self.list_labels, transform) # Default collation should raise an error loader_fail = DataLoader(dataset, batch_size=10) with self.assertRaises(RuntimeError): for _ in loader_fail: pass # Padded collation shouldn't loader = DataLoader(dataset, batch_size=10, collate_fn=collate_method) # check collation in forward direction for data in loader: if t_type == dict: shapes = [] decollated_data = decollate_batch(data) for d in decollated_data: output = PadListDataCollate.inverse(d) shapes.append(output["image"].shape) self.assertTrue( len(set(shapes)) > 1 ) # inverted shapes must be different because of random xforms
def test_pad_collation(self, t_type, collate_method, transform): if t_type == dict: dataset = CacheDataset(self.dict_data, transform, progress=False) else: dataset = _Dataset(self.list_data, self.list_labels, transform) # Default collation should raise an error loader_fail = DataLoader(dataset, batch_size=10) with self.assertRaises(RuntimeError): for _ in loader_fail: pass # Padded collation shouldn't loader = DataLoader(dataset, batch_size=10, collate_fn=collate_method) # check collation in forward direction for data in loader: if t_type == dict: decollated_data = decollate_batch(data) for d in decollated_data: PadListDataCollate.inverse(d)
from monai.transforms import ( PadListDataCollate, RandRotate, RandRotate90, RandRotate90d, RandRotated, RandSpatialCrop, RandSpatialCropd, RandZoom, RandZoomd, ) from monai.utils import set_determinism TESTS: List[Tuple] = [] for pad_collate in [pad_list_data_collate, PadListDataCollate()]: TESTS.append((dict, pad_collate, RandSpatialCropd("image", roi_size=[8, 7], random_size=True))) TESTS.append((dict, pad_collate, RandRotated("image", prob=1, range_x=np.pi, keep_size=False))) TESTS.append((dict, pad_collate, RandZoomd("image", prob=1, min_zoom=1.1, max_zoom=2.0, keep_size=False))) TESTS.append((dict, pad_collate, RandRotate90d("image", prob=1, max_k=2))) TESTS.append(
RandRotated, RandSpatialCrop, RandSpatialCropd, RandZoom, RandZoomd, ToTensor, ToTensord, ) from monai.utils import set_determinism TESTS: List[Tuple] = [] for pad_collate in [ lambda x: pad_list_data_collate(batch=x, method="end", mode="constant" ), PadListDataCollate(method="end", mode="constant"), ]: TESTS.append((dict, pad_collate, RandSpatialCropd("image", roi_size=[8, 7], random_size=True))) TESTS.append((dict, pad_collate, RandRotated("image", prob=1, range_x=np.pi, keep_size=False))) TESTS.append((dict, pad_collate, RandZoomd("image", prob=1, min_zoom=1.1, max_zoom=2.0, keep_size=False))) TESTS.append( (dict, pad_collate,