Skip to content

Commit

Permalink
update ensuretype (Project-MONAI#261)
Browse files Browse the repository at this point in the history
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
  • Loading branch information
yiheng-wang-nv authored Jul 13, 2021
1 parent 70ac974 commit d340613
Show file tree
Hide file tree
Showing 71 changed files with 277 additions and 277 deletions.
10 changes: 5 additions & 5 deletions 2d_classification/mednist_tutorial.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
" RandRotate,\n",
" RandZoom,\n",
" ScaleIntensity,\n",
" ToTensor,\n",
" EnsureType,\n",
")\n",
"from monai.utils import set_determinism\n",
"\n",
Expand Down Expand Up @@ -367,15 +367,15 @@
" RandRotate(range_x=np.pi / 12, prob=0.5, keep_size=True),\n",
" RandFlip(spatial_axis=0, prob=0.5),\n",
" RandZoom(min_zoom=0.9, max_zoom=1.1, prob=0.5),\n",
" ToTensor(),\n",
" EnsureType(),\n",
" ]\n",
")\n",
"\n",
"val_transforms = Compose(\n",
" [LoadImage(image_only=True), AddChannel(), ScaleIntensity(), ToTensor()])\n",
" [LoadImage(image_only=True), AddChannel(), ScaleIntensity(), EnsureType()])\n",
"\n",
"y_pred_trans = Compose([ToTensor(), Activations(softmax=True)])\n",
"y_trans = Compose([ToTensor(), AsDiscrete(to_onehot=True, n_classes=num_class)])"
"y_pred_trans = Compose([EnsureType(), Activations(softmax=True)])\n",
"y_trans = Compose([EnsureType(), AsDiscrete(to_onehot=True, n_classes=num_class)])"
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions 2d_registration/registration_mednist.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@
" RandRotateD,\n",
" RandZoomD,\n",
" ScaleIntensityRanged,\n",
" ToTensorD,\n",
" EnsureTypeD,\n",
")\n",
"from monai.data import DataLoader, Dataset, CacheDataset\n",
"from monai.config import print_config, USE_COMPILED\n",
Expand Down Expand Up @@ -206,7 +206,7 @@
" a_min=0., a_max=255., b_min=0.0, b_max=1.0, clip=True,),\n",
" RandRotateD(keys=[\"moving_hand\"], range_x=np.pi/4, prob=1.0, keep_size=True, mode=\"bicubic\"),\n",
" RandZoomD(keys=[\"moving_hand\"], min_zoom=0.9, max_zoom=1.1, prob=1.0, mode=\"bicubic\", align_corners=False),\n",
" ToTensorD(keys=[\"fixed_hand\", \"moving_hand\"]),\n",
" EnsureTypeD(keys=[\"fixed_hand\", \"moving_hand\"]),\n",
" ]\n",
")"
]
Expand Down
8 changes: 4 additions & 4 deletions 2d_segmentation/torch/unet_evaluation_array.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
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, ToTensor
from monai.transforms import Activations, AddChannel, AsDiscrete, Compose, LoadImage, SaveImage, ScaleIntensity, EnsureType


def main(tempdir):
Expand All @@ -41,13 +41,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), ScaleIntensity(), AddChannel(), ToTensor()])
segtrans = Compose([LoadImage(image_only=True), AddChannel(), ToTensor()])
imtrans = Compose([LoadImage(image_only=True), ScaleIntensity(), AddChannel(), EnsureType()])
segtrans = Compose([LoadImage(image_only=True), AddChannel(), EnsureType()])
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([ToTensor(), Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
post_trans = Compose([EnsureType(), Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
saver = SaveImage(output_dir="./output", output_ext=".png", output_postfix="seg")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = UNet(
Expand Down
6 changes: 3 additions & 3 deletions 2d_segmentation/torch/unet_evaluation_dict.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
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, ToTensord, ToTensor
from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, SaveImage, ScaleIntensityd, EnsureTyped, EnsureType


def main(tempdir):
Expand All @@ -47,14 +47,14 @@ def main(tempdir):
LoadImaged(keys=["img", "seg"]),
AddChanneld(keys=["img", "seg"]),
ScaleIntensityd(keys="img"),
ToTensord(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([ToTensor(), Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
post_trans = Compose([EnsureType(), Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
saver = SaveImage(output_dir="./output", output_ext=".png", output_postfix="seg")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = UNet(
Expand Down
12 changes: 6 additions & 6 deletions 2d_segmentation/torch/unet_training_array.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
RandRotate90,
RandSpatialCrop,
ScaleIntensity,
ToTensor,
EnsureType,
)
from monai.visualize import plot_2d_or_3d_image

Expand All @@ -60,7 +60,7 @@ def main(tempdir):
AddChannel(),
RandSpatialCrop((96, 96), random_size=False),
RandRotate90(prob=0.5, spatial_axes=(0, 1)),
ToTensor(),
EnsureType(),
]
)
train_segtrans = Compose(
Expand All @@ -69,11 +69,11 @@ def main(tempdir):
AddChannel(),
RandSpatialCrop((96, 96), random_size=False),
RandRotate90(prob=0.5, spatial_axes=(0, 1)),
ToTensor(),
EnsureType(),
]
)
val_imtrans = Compose([LoadImage(image_only=True), ScaleIntensity(), AddChannel(), ToTensor()])
val_segtrans = Compose([LoadImage(image_only=True), AddChannel(), ToTensor()])
val_imtrans = Compose([LoadImage(image_only=True), ScaleIntensity(), AddChannel(), EnsureType()])
val_segtrans = Compose([LoadImage(image_only=True), AddChannel(), EnsureType()])

# define array dataset, data loader
check_ds = ArrayDataset(images, train_imtrans, segs, train_segtrans)
Expand All @@ -88,7 +88,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([ToTensor(), Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
post_trans = Compose([EnsureType(), Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
# create UNet, DiceLoss and Adam optimizer
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = monai.networks.nets.UNet(
Expand Down
10 changes: 5 additions & 5 deletions 2d_segmentation/torch/unet_training_dict.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
RandCropByPosNegLabeld,
RandRotate90d,
ScaleIntensityd,
ToTensord,
ToTensor,
EnsureTyped,
EnsureType,
)
from monai.visualize import plot_2d_or_3d_image

Expand Down Expand Up @@ -65,15 +65,15 @@ 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]),
ToTensord(keys=["img", "seg"]),
EnsureTyped(keys=["img", "seg"]),
]
)
val_transforms = Compose(
[
LoadImaged(keys=["img", "seg"]),
AddChanneld(keys=["img", "seg"]),
ScaleIntensityd(keys="img"),
ToTensord(keys=["img", "seg"]),
EnsureTyped(keys=["img", "seg"]),
]
)

Expand All @@ -99,7 +99,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([ToTensor(), Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
post_trans = Compose([EnsureType(), Activations(sigmoid=True), AsDiscrete(threshold_values=True)])
# create UNet, DiceLoss and Adam optimizer
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = monai.networks.nets.UNet(
Expand Down
10 changes: 5 additions & 5 deletions 3d_classification/densenet_training_array.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,10 @@
" RandRotate90,\n",
" Resize,\n",
" ScaleIntensity,\n",
" ToTensor,\n",
" EnsureType,\n",
" Randomizable,\n",
" LoadImaged,\n",
" ToTensord,\n",
" EnsureTyped,\n",
")\n",
"\n",
"logging.basicConfig(stream=sys.stdout, level=logging.INFO)\n",
Expand Down Expand Up @@ -249,7 +249,7 @@
"train_ds = IXIDataset(\n",
" root_dir=root_dir,\n",
" section=\"training\",\n",
" transform=Compose([LoadImaged(\"image\"), ToTensord(\"image\")]),\n",
" transform=Compose([LoadImaged(\"image\"), EnsureTyped(\"image\")]),\n",
" download=True,\n",
")"
]
Expand Down Expand Up @@ -342,9 +342,9 @@
"\n",
"# Define transforms\n",
"train_transforms = Compose([ScaleIntensity(), AddChannel(), Resize(\n",
" (96, 96, 96)), RandRotate90(), ToTensor()])\n",
" (96, 96, 96)), RandRotate90(), EnsureType()])\n",
"val_transforms = Compose(\n",
" [ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), ToTensor()])\n",
" [ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), EnsureType()])\n",
"\n",
"# Define nifti dataset, data loader\n",
"check_ds = ImageDataset(image_files=images, labels=labels,\n",
Expand Down
4 changes: 2 additions & 2 deletions 3d_classification/ignite/densenet_evaluation_array.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import monai
from monai.data import ImageDataset
from monai.handlers import CheckpointLoader, ClassificationSaver, StatsHandler
from monai.transforms import AddChannel, Compose, Resize, ScaleIntensity, ToTensor
from monai.transforms import AddChannel, Compose, Resize, ScaleIntensity, EnsureType


def main():
Expand Down Expand Up @@ -50,7 +50,7 @@ def main():
labels = np.array([0, 0, 1, 0, 1, 0, 1, 0, 1, 0], dtype=np.int64)

# define transforms for image
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), ToTensor()])
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), EnsureType()])
# define image dataset
val_ds = ImageDataset(image_files=images, labels=labels, transform=val_transforms, image_only=False)
# create DenseNet121
Expand Down
4 changes: 2 additions & 2 deletions 3d_classification/ignite/densenet_evaluation_dict.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

import monai
from monai.handlers import CheckpointLoader, ClassificationSaver, StatsHandler
from monai.transforms import AddChanneld, Compose, LoadImaged, Resized, ScaleIntensityd, ToTensord
from monai.transforms import AddChanneld, Compose, LoadImaged, Resized, ScaleIntensityd, EnsureTyped


def main():
Expand Down Expand Up @@ -56,7 +56,7 @@ def main():
AddChanneld(keys=["img"]),
ScaleIntensityd(keys=["img"]),
Resized(keys=["img"], spatial_size=(96, 96, 96)),
ToTensord(keys=["img"]),
EnsureTyped(keys=["img"]),
]
)

Expand Down
6 changes: 3 additions & 3 deletions 3d_classification/ignite/densenet_training_array.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import monai
from monai.data import ImageDataset, decollate_batch
from monai.handlers import StatsHandler, TensorBoardStatsHandler, stopping_fn_from_metric
from monai.transforms import AddChannel, Compose, RandRotate90, Resize, ScaleIntensity, ToTensor
from monai.transforms import AddChannel, Compose, RandRotate90, Resize, ScaleIntensity, EnsureType


def main():
Expand Down Expand Up @@ -61,8 +61,8 @@ def main():
labels = np.array([0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0], dtype=np.int64)

# define transforms
train_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), RandRotate90(), ToTensor()])
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), ToTensor()])
train_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), RandRotate90(), EnsureType()])
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), EnsureType()])

# define image dataset, data loader
check_ds = ImageDataset(image_files=images, labels=labels, transform=train_transforms)
Expand Down
10 changes: 5 additions & 5 deletions 3d_classification/ignite/densenet_training_dict.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import monai
from monai.data import decollate_batch
from monai.handlers import ROCAUC, StatsHandler, TensorBoardStatsHandler, stopping_fn_from_metric
from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, RandRotate90d, Resized, ScaleIntensityd, ToTensord, ToTensor
from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, RandRotate90d, Resized, ScaleIntensityd, EnsureTyped, EnsureType


def main():
Expand Down Expand Up @@ -69,7 +69,7 @@ def main():
ScaleIntensityd(keys=["img"]),
Resized(keys=["img"], spatial_size=(96, 96, 96)),
RandRotate90d(keys=["img"], prob=0.8, spatial_axes=[0, 2]),
ToTensord(keys=["img"]),
EnsureTyped(keys=["img"]),
]
)
val_transforms = Compose(
Expand All @@ -78,7 +78,7 @@ def main():
AddChanneld(keys=["img"]),
ScaleIntensityd(keys=["img"]),
Resized(keys=["img"], spatial_size=(96, 96, 96)),
ToTensord(keys=["img"]),
EnsureTyped(keys=["img"]),
]
)

Expand Down Expand Up @@ -126,8 +126,8 @@ def prepare_batch(batch, device=None, non_blocking=False):
# add evaluation metric to the evaluator engine
val_metrics = {metric_name: ROCAUC()}

post_label = Compose([ToTensor(), AsDiscrete(to_onehot=True, n_classes=2)])
post_pred = Compose([ToTensor(), Activations(softmax=True)])
post_label = Compose([EnsureType(), AsDiscrete(to_onehot=True, n_classes=2)])
post_pred = Compose([EnsureType(), Activations(softmax=True)])
# Ignite evaluator expects batch=(img, label) and returns output=(y_pred, y) at every iteration,
# user can add output_transform to return other values
evaluator = create_supervised_evaluator(net, val_metrics, device, True, prepare_batch=prepare_batch, output_transform=lambda x, y, y_pred: ([post_pred(i) for i in decollate_batch(y_pred)], [post_label(i) for i in decollate_batch(y)]))
Expand Down
4 changes: 2 additions & 2 deletions 3d_classification/torch/densenet_evaluation_array.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import monai
from monai.data import CSVSaver, ImageDataset
from monai.transforms import AddChannel, Compose, Resize, ScaleIntensity, ToTensor
from monai.transforms import AddChannel, Compose, Resize, ScaleIntensity, EnsureType


def main():
Expand Down Expand Up @@ -47,7 +47,7 @@ def main():
labels = np.array([0, 0, 1, 0, 1, 0, 1, 0, 1, 0], dtype=np.int64)

# Define transforms for image
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), ToTensor()])
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), EnsureType()])

# Define image dataset
val_ds = ImageDataset(image_files=images, labels=labels, transform=val_transforms, image_only=False)
Expand Down
4 changes: 2 additions & 2 deletions 3d_classification/torch/densenet_evaluation_dict.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import monai
from monai.data import CSVSaver
from monai.transforms import AddChanneld, Compose, LoadImaged, Resized, ScaleIntensityd, ToTensord
from monai.transforms import AddChanneld, Compose, LoadImaged, Resized, ScaleIntensityd, EnsureTyped


def main():
Expand Down Expand Up @@ -54,7 +54,7 @@ def main():
AddChanneld(keys=["img"]),
ScaleIntensityd(keys=["img"]),
Resized(keys=["img"], spatial_size=(96, 96, 96)),
ToTensord(keys=["img"]),
EnsureTyped(keys=["img"]),
]
)

Expand Down
6 changes: 3 additions & 3 deletions 3d_classification/torch/densenet_training_array.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

import monai
from monai.data import ImageDataset
from monai.transforms import AddChannel, Compose, RandRotate90, Resize, ScaleIntensity, ToTensor
from monai.transforms import AddChannel, Compose, RandRotate90, Resize, ScaleIntensity, EnsureType


def main():
Expand Down Expand Up @@ -58,8 +58,8 @@ def main():
labels = np.array([0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0], dtype=np.int64)

# Define transforms
train_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), RandRotate90(), ToTensor()])
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), ToTensor()])
train_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), RandRotate90(), EnsureType()])
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), EnsureType()])

# Define image dataset, data loader
check_ds = ImageDataset(image_files=images, labels=labels, transform=train_transforms)
Expand Down
10 changes: 5 additions & 5 deletions 3d_classification/torch/densenet_training_dict.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import monai
from monai.data import decollate_batch
from monai.metrics import ROCAUCMetric
from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, RandRotate90d, Resized, ScaleIntensityd, ToTensord, ToTensor
from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, RandRotate90d, Resized, ScaleIntensityd, EnsureTyped, EnsureType


def main():
Expand Down Expand Up @@ -68,7 +68,7 @@ def main():
ScaleIntensityd(keys=["img"]),
Resized(keys=["img"], spatial_size=(96, 96, 96)),
RandRotate90d(keys=["img"], prob=0.8, spatial_axes=[0, 2]),
ToTensord(keys=["img"]),
EnsureTyped(keys=["img"]),
]
)
val_transforms = Compose(
Expand All @@ -77,11 +77,11 @@ def main():
AddChanneld(keys=["img"]),
ScaleIntensityd(keys=["img"]),
Resized(keys=["img"], spatial_size=(96, 96, 96)),
ToTensord(keys=["img"]),
EnsureTyped(keys=["img"]),
]
)
post_pred = Compose([ToTensor(), Activations(softmax=True)])
post_label = Compose([ToTensor(), AsDiscrete(to_onehot=True, n_classes=2)])
post_pred = Compose([EnsureType(), Activations(softmax=True)])
post_label = Compose([EnsureType(), AsDiscrete(to_onehot=True, n_classes=2)])

# Define dataset, data loader
check_ds = monai.data.Dataset(data=train_files, transform=train_transforms)
Expand Down
Loading

0 comments on commit d340613

Please sign in to comment.