From 70738c6a82b6e52c7aecb73fc6158959092b4798 Mon Sep 17 00:00:00 2001 From: KumoLiu Date: Tue, 19 Jul 2022 09:43:44 +0800 Subject: [PATCH] update 2d_segmentation Signed-off-by: KumoLiu --- 2d_segmentation/torch/unet_evaluation_array.py | 11 +++++------ 2d_segmentation/torch/unet_evaluation_dict.py | 8 +++----- 2d_segmentation/torch/unet_training_array.py | 12 ++++-------- 2d_segmentation/torch/unet_training_dict.py | 9 ++------- 4 files changed, 14 insertions(+), 26 deletions(-) diff --git a/2d_segmentation/torch/unet_evaluation_array.py b/2d_segmentation/torch/unet_evaluation_array.py index 5155b6496b..dc3cbbcf4e 100644 --- a/2d_segmentation/torch/unet_evaluation_array.py +++ b/2d_segmentation/torch/unet_evaluation_array.py @@ -17,14 +17,13 @@ import torch from PIL import Image -from torch.utils.data import DataLoader from monai import config -from monai.data import ArrayDataset, create_test_image_2d, decollate_batch +from monai.data import ArrayDataset, create_test_image_2d, decollate_batch, DataLoader from monai.inferers import sliding_window_inference from monai.metrics import DiceMetric from monai.networks.nets import UNet -from monai.transforms import Activations, AddChannel, AsDiscrete, Compose, LoadImage, SaveImage, ScaleIntensity, EnsureType +from monai.transforms import Activations, AddChannel, AsDiscrete, Compose, LoadImage, SaveImage, ScaleIntensity def main(tempdir): @@ -41,13 +40,13 @@ def main(tempdir): segs = sorted(glob(os.path.join(tempdir, "seg*.png"))) # define transforms for image and segmentation - imtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity(), EnsureType()]) - segtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity(), EnsureType()]) + imtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity()]) + segtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity()]) val_ds = ArrayDataset(images, imtrans, segs, segtrans) # sliding window inference for one image at every iteration val_loader = DataLoader(val_ds, batch_size=1, num_workers=1, pin_memory=torch.cuda.is_available()) dice_metric = DiceMetric(include_background=True, reduction="mean", get_not_nans=False) - post_trans = Compose([EnsureType(), Activations(sigmoid=True), AsDiscrete(threshold=0.5)]) + post_trans = Compose([Activations(sigmoid=True), AsDiscrete(threshold=0.5)]) saver = SaveImage(output_dir="./output", output_ext=".png", output_postfix="seg") device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = UNet( diff --git a/2d_segmentation/torch/unet_evaluation_dict.py b/2d_segmentation/torch/unet_evaluation_dict.py index 7dfdd6edee..02bd9a5292 100644 --- a/2d_segmentation/torch/unet_evaluation_dict.py +++ b/2d_segmentation/torch/unet_evaluation_dict.py @@ -17,14 +17,13 @@ import torch from PIL import Image -from torch.utils.data import DataLoader import monai -from monai.data import create_test_image_2d, list_data_collate, decollate_batch +from monai.data import create_test_image_2d, list_data_collate, decollate_batch, DataLoader from monai.inferers import sliding_window_inference from monai.metrics import DiceMetric from monai.networks.nets import UNet -from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, SaveImage, ScaleIntensityd, EnsureTyped, EnsureType +from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, SaveImage, ScaleIntensityd def main(tempdir): @@ -47,14 +46,13 @@ def main(tempdir): LoadImaged(keys=["img", "seg"]), AddChanneld(keys=["img", "seg"]), ScaleIntensityd(keys=["img", "seg"]), - EnsureTyped(keys=["img", "seg"]), ] ) val_ds = monai.data.Dataset(data=val_files, transform=val_transforms) # sliding window inference need to input 1 image in every iteration val_loader = DataLoader(val_ds, batch_size=1, num_workers=4, collate_fn=list_data_collate) dice_metric = DiceMetric(include_background=True, reduction="mean", get_not_nans=False) - post_trans = Compose([EnsureType(), Activations(sigmoid=True), AsDiscrete(threshold=0.5)]) + post_trans = Compose([Activations(sigmoid=True), AsDiscrete(threshold=0.5)]) saver = SaveImage(output_dir="./output", output_ext=".png", output_postfix="seg") device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = UNet( diff --git a/2d_segmentation/torch/unet_training_array.py b/2d_segmentation/torch/unet_training_array.py index 75701802e9..e13f8bea27 100644 --- a/2d_segmentation/torch/unet_training_array.py +++ b/2d_segmentation/torch/unet_training_array.py @@ -17,11 +17,10 @@ import torch from PIL import Image -from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter import monai -from monai.data import ArrayDataset, create_test_image_2d, decollate_batch +from monai.data import ArrayDataset, create_test_image_2d, decollate_batch, DataLoader from monai.inferers import sliding_window_inference from monai.metrics import DiceMetric from monai.transforms import ( @@ -33,7 +32,6 @@ RandRotate90, RandSpatialCrop, ScaleIntensity, - EnsureType, ) from monai.visualize import plot_2d_or_3d_image @@ -60,7 +58,6 @@ def main(tempdir): ScaleIntensity(), RandSpatialCrop((96, 96), random_size=False), RandRotate90(prob=0.5, spatial_axes=(0, 1)), - EnsureType(), ] ) train_segtrans = Compose( @@ -70,11 +67,10 @@ def main(tempdir): ScaleIntensity(), RandSpatialCrop((96, 96), random_size=False), RandRotate90(prob=0.5, spatial_axes=(0, 1)), - EnsureType(), ] ) - val_imtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity(), EnsureType()]) - val_segtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity(), EnsureType()]) + val_imtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity()]) + val_segtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity()]) # define array dataset, data loader check_ds = ArrayDataset(images, train_imtrans, segs, train_segtrans) @@ -89,7 +85,7 @@ def main(tempdir): val_ds = ArrayDataset(images[-20:], val_imtrans, segs[-20:], val_segtrans) val_loader = DataLoader(val_ds, batch_size=1, num_workers=4, pin_memory=torch.cuda.is_available()) dice_metric = DiceMetric(include_background=True, reduction="mean", get_not_nans=False) - post_trans = Compose([EnsureType(), Activations(sigmoid=True), AsDiscrete(threshold=0.5)]) + post_trans = Compose([Activations(sigmoid=True), AsDiscrete(threshold=0.5)]) # create UNet, DiceLoss and Adam optimizer device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = monai.networks.nets.UNet( diff --git a/2d_segmentation/torch/unet_training_dict.py b/2d_segmentation/torch/unet_training_dict.py index 79de4f17c7..898fcbeb91 100644 --- a/2d_segmentation/torch/unet_training_dict.py +++ b/2d_segmentation/torch/unet_training_dict.py @@ -17,11 +17,10 @@ import torch from PIL import Image -from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter import monai -from monai.data import create_test_image_2d, list_data_collate, decollate_batch +from monai.data import create_test_image_2d, list_data_collate, decollate_batch, DataLoader from monai.inferers import sliding_window_inference from monai.metrics import DiceMetric from monai.transforms import ( @@ -33,8 +32,6 @@ RandCropByPosNegLabeld, RandRotate90d, ScaleIntensityd, - EnsureTyped, - EnsureType, ) from monai.visualize import plot_2d_or_3d_image @@ -65,7 +62,6 @@ def main(tempdir): keys=["img", "seg"], label_key="seg", spatial_size=[96, 96], pos=1, neg=1, num_samples=4 ), RandRotate90d(keys=["img", "seg"], prob=0.5, spatial_axes=[0, 1]), - EnsureTyped(keys=["img", "seg"]), ] ) val_transforms = Compose( @@ -73,7 +69,6 @@ def main(tempdir): LoadImaged(keys=["img", "seg"]), AddChanneld(keys=["img", "seg"]), ScaleIntensityd(keys=["img", "seg"]), - EnsureTyped(keys=["img", "seg"]), ] ) @@ -99,7 +94,7 @@ def main(tempdir): val_ds = monai.data.Dataset(data=val_files, transform=val_transforms) val_loader = DataLoader(val_ds, batch_size=1, num_workers=4, collate_fn=list_data_collate) dice_metric = DiceMetric(include_background=True, reduction="mean", get_not_nans=False) - post_trans = Compose([EnsureType(), Activations(sigmoid=True), AsDiscrete(threshold=0.5)]) + post_trans = Compose([Activations(sigmoid=True), AsDiscrete(threshold=0.5)]) # create UNet, DiceLoss and Adam optimizer device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = monai.networks.nets.UNet(