diff --git a/pathology/multiple_instance_learning/panda_mil_train_evaluate_pytorch_gpu.py b/pathology/multiple_instance_learning/panda_mil_train_evaluate_pytorch_gpu.py index add462518b..826dcd12a8 100644 --- a/pathology/multiple_instance_learning/panda_mil_train_evaluate_pytorch_gpu.py +++ b/pathology/multiple_instance_learning/panda_mil_train_evaluate_pytorch_gpu.py @@ -24,6 +24,7 @@ RandGridPatchd, RandRotate90d, ScaleIntensityRanged, + SplitDimd, ToTensord, ) from sklearn.metrics import cohen_kappa_score @@ -235,9 +236,10 @@ def list_data_collate(batch: collections.abc.Sequence): """ for i, item in enumerate(batch): + # print(f"{i} = {item['image'].shape=} >> {item['image'].keys=}") data = item[0] data["image"] = torch.stack([ix["image"] for ix in item], dim=0) - data["patch_location"] = torch.stack([ix["patch_location"] for ix in item], dim=0) + # data["patch_location"] = torch.stack([ix["patch_location"] for ix in item], dim=0) batch[i] = data return default_collate(batch) @@ -289,6 +291,7 @@ def main_worker(gpu, args): pad_mode=None, constant_values=255, ), + SplitDimd(keys=["image"], dim=0, keepdim=False, list_output=True), RandFlipd(keys=["image"], spatial_axis=0, prob=0.5), RandFlipd(keys=["image"], spatial_axis=1, prob=0.5), RandRotate90d(keys=["image"], prob=0.5), @@ -308,6 +311,7 @@ def main_worker(gpu, args): pad_mode=None, constant_values=255, ), + SplitDimd(keys=["image"], dim=0, keepdim=False, list_output=True), ScaleIntensityRanged(keys=["image"], a_min=np.float32(255), a_max=np.float32(0)), ToTensord(keys=["image", "label"]), ] diff --git a/pathology/tumor_detection/ignite/camelyon_train_evaluate.py b/pathology/tumor_detection/ignite/camelyon_train_evaluate.py index e3a74dc8e1..da9265c294 100644 --- a/pathology/tumor_detection/ignite/camelyon_train_evaluate.py +++ b/pathology/tumor_detection/ignite/camelyon_train_evaluate.py @@ -115,7 +115,7 @@ def train(cfg): # Create MONAI dataset train_data_list = CSVDataset( cfg["train_file"], - col_groups={"image": 0, "patch_location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, + col_groups={"image": 0, "location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, kwargs_read_csv={"header": None}, transform=Lambdad("image", lambda x: os.path.join(cfg["root"], "training/images", x + ".tif")), ) @@ -129,7 +129,7 @@ def train(cfg): valid_data_list = CSVDataset( cfg["valid_file"], - col_groups={"image": 0, "patch_location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, + col_groups={"image": 0, "location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, kwargs_read_csv={"header": None}, transform=Lambdad("image", lambda x: os.path.join(cfg["root"], "training/images", x + ".tif")), ) diff --git a/pathology/tumor_detection/ignite/camelyon_train_evaluate_nvtx_profiling.py b/pathology/tumor_detection/ignite/camelyon_train_evaluate_nvtx_profiling.py index 581191d30f..ae8a769d76 100644 --- a/pathology/tumor_detection/ignite/camelyon_train_evaluate_nvtx_profiling.py +++ b/pathology/tumor_detection/ignite/camelyon_train_evaluate_nvtx_profiling.py @@ -117,7 +117,7 @@ def train(cfg): # Create MONAI dataset train_data_list = CSVDataset( cfg["train_file"], - col_groups={"image": 0, "patch_location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, + col_groups={"image": 0, "location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, kwargs_read_csv={"header": None}, transform=Lambdad("image", lambda x: os.path.join(cfg["root"], "training/images", x + ".tif")), ) @@ -131,7 +131,7 @@ def train(cfg): valid_data_list = CSVDataset( cfg["valid_file"], - col_groups={"image": 0, "patch_location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, + col_groups={"image": 0, "location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, kwargs_read_csv={"header": None}, transform=Lambdad("image", lambda x: os.path.join(cfg["root"], "training/images", x + ".tif")), ) diff --git a/pathology/tumor_detection/torch/camelyon_train_evaluate_pytorch_gpu.py b/pathology/tumor_detection/torch/camelyon_train_evaluate_pytorch_gpu.py index 2fcf6f0cbb..fcf3d002dd 100644 --- a/pathology/tumor_detection/torch/camelyon_train_evaluate_pytorch_gpu.py +++ b/pathology/tumor_detection/torch/camelyon_train_evaluate_pytorch_gpu.py @@ -308,7 +308,7 @@ def main(cfg): # Create train dataset and dataloader train_data_list = CSVDataset( cfg["train_file"], - col_groups={"image": 0, "patch_location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, + col_groups={"image": 0, "location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, kwargs_read_csv={"header": None}, transform=Lambdad("image", lambda x: os.path.join(cfg["root"], "training/images", x + ".tif")), ) @@ -327,7 +327,7 @@ def main(cfg): if not cfg["no_validate"]: valid_data_list = CSVDataset( cfg["valid_file"], - col_groups={"image": 0, "patch_location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, + col_groups={"image": 0, "location": [2, 1], "label": [3, 6, 9, 4, 7, 10, 5, 8, 11]}, kwargs_read_csv={"header": None}, transform=Lambdad("image", lambda x: os.path.join(cfg["root"], "training/images", x + ".tif")), ) @@ -361,7 +361,7 @@ def main(cfg): # Deep Learning Model and Configurations # ------------------------------------------------------------------------- # Initialize model - model = TorchVisionFCModel("resnet18", n_classes=1, use_conv=True, pretrained=cfg["pretrain"]) + model = TorchVisionFCModel("resnet18", num_classes=1, use_conv=True, pretrained=cfg["pretrain"]) model = model.to(device) # Loss function