Skip to content

Commit e31dd31

Browse files
authored
replace AsChannelFirst as EnsureChannelFirst (#812)
1 parent 03a758e commit e31dd31

29 files changed

+100
-111
lines changed

2d_classification/mednist_tutorial.ipynb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
"from monai.networks.nets import DenseNet121\n",
110110
"from monai.transforms import (\n",
111111
" Activations,\n",
112-
" AddChannel,\n",
112+
" EnsureChannelFirst,\n",
113113
" AsDiscrete,\n",
114114
" Compose,\n",
115115
" LoadImage,\n",
@@ -361,7 +361,7 @@
361361
"train_transforms = Compose(\n",
362362
" [\n",
363363
" LoadImage(image_only=True),\n",
364-
" AddChannel(),\n",
364+
" EnsureChannelFirst(),\n",
365365
" ScaleIntensity(),\n",
366366
" RandRotate(range_x=np.pi / 12, prob=0.5, keep_size=True),\n",
367367
" RandFlip(spatial_axis=0, prob=0.5),\n",
@@ -370,7 +370,7 @@
370370
")\n",
371371
"\n",
372372
"val_transforms = Compose(\n",
373-
" [LoadImage(image_only=True), AddChannel(), ScaleIntensity()])\n",
373+
" [LoadImage(image_only=True), EnsureChannelFirst(), ScaleIntensity()])\n",
374374
"\n",
375375
"y_pred_trans = Compose([Activations(softmax=True)])\n",
376376
"y_trans = Compose([AsDiscrete(to_onehot=num_class)])"
@@ -1340,7 +1340,7 @@
13401340
"name": "python",
13411341
"nbconvert_exporter": "python",
13421342
"pygments_lexer": "ipython3",
1343-
"version": "3.8.12"
1343+
"version": "3.8.13"
13441344
}
13451345
},
13461346
"nbformat": 4,

2d_segmentation/torch/unet_evaluation_array.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from monai.inferers import sliding_window_inference
2424
from monai.metrics import DiceMetric
2525
from monai.networks.nets import UNet
26-
from monai.transforms import Activations, AddChannel, AsDiscrete, Compose, LoadImage, SaveImage, ScaleIntensity
26+
from monai.transforms import Activations, AsDiscrete, Compose, LoadImage, SaveImage, ScaleIntensity
2727

2828

2929
def main(tempdir):
@@ -40,8 +40,8 @@ def main(tempdir):
4040
segs = sorted(glob(os.path.join(tempdir, "seg*.png")))
4141

4242
# define transforms for image and segmentation
43-
imtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity()])
44-
segtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity()])
43+
imtrans = Compose([LoadImage(image_only=True, ensure_channel_first=True), ScaleIntensity()])
44+
segtrans = Compose([LoadImage(image_only=True, ensure_channel_first=True), ScaleIntensity()])
4545
val_ds = ArrayDataset(images, imtrans, segs, segtrans)
4646
# sliding window inference for one image at every iteration
4747
val_loader = DataLoader(val_ds, batch_size=1, num_workers=1, pin_memory=torch.cuda.is_available())

2d_segmentation/torch/unet_evaluation_dict.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from monai.inferers import sliding_window_inference
2424
from monai.metrics import DiceMetric
2525
from monai.networks.nets import UNet
26-
from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, SaveImage, ScaleIntensityd
26+
from monai.transforms import Activations, EnsureChannelFirstd, AsDiscrete, Compose, LoadImaged, SaveImage, ScaleIntensityd
2727

2828

2929
def main(tempdir):
@@ -44,7 +44,7 @@ def main(tempdir):
4444
val_transforms = Compose(
4545
[
4646
LoadImaged(keys=["img", "seg"]),
47-
AddChanneld(keys=["img", "seg"]),
47+
EnsureChannelFirstd(keys=["img", "seg"]),
4848
ScaleIntensityd(keys=["img", "seg"]),
4949
]
5050
)

2d_segmentation/torch/unet_training_array.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from monai.metrics import DiceMetric
2626
from monai.transforms import (
2727
Activations,
28-
AddChannel,
2928
AsDiscrete,
3029
Compose,
3130
LoadImage,
@@ -53,24 +52,22 @@ def main(tempdir):
5352
# define transforms for image and segmentation
5453
train_imtrans = Compose(
5554
[
56-
LoadImage(image_only=True),
57-
AddChannel(),
55+
LoadImage(image_only=True, ensure_channel_first=True),
5856
ScaleIntensity(),
5957
RandSpatialCrop((96, 96), random_size=False),
6058
RandRotate90(prob=0.5, spatial_axes=(0, 1)),
6159
]
6260
)
6361
train_segtrans = Compose(
6462
[
65-
LoadImage(image_only=True),
66-
AddChannel(),
63+
LoadImage(image_only=True, ensure_channel_first=True),
6764
ScaleIntensity(),
6865
RandSpatialCrop((96, 96), random_size=False),
6966
RandRotate90(prob=0.5, spatial_axes=(0, 1)),
7067
]
7168
)
72-
val_imtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity()])
73-
val_segtrans = Compose([LoadImage(image_only=True), AddChannel(), ScaleIntensity()])
69+
val_imtrans = Compose([LoadImage(image_only=True, ensure_channel_first=True), ScaleIntensity()])
70+
val_segtrans = Compose([LoadImage(image_only=True, ensure_channel_first=True), ScaleIntensity()])
7471

7572
# define array dataset, data loader
7673
check_ds = ArrayDataset(images, train_imtrans, segs, train_segtrans)

2d_segmentation/torch/unet_training_dict.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from monai.metrics import DiceMetric
2626
from monai.transforms import (
2727
Activations,
28-
AddChanneld,
28+
EnsureChannelFirstd,
2929
AsDiscrete,
3030
Compose,
3131
LoadImaged,
@@ -56,7 +56,7 @@ def main(tempdir):
5656
train_transforms = Compose(
5757
[
5858
LoadImaged(keys=["img", "seg"]),
59-
AddChanneld(keys=["img", "seg"]),
59+
EnsureChannelFirstd(keys=["img", "seg"]),
6060
ScaleIntensityd(keys=["img", "seg"]),
6161
RandCropByPosNegLabeld(
6262
keys=["img", "seg"], label_key="seg", spatial_size=[96, 96], pos=1, neg=1, num_samples=4
@@ -67,7 +67,7 @@ def main(tempdir):
6767
val_transforms = Compose(
6868
[
6969
LoadImaged(keys=["img", "seg"]),
70-
AddChanneld(keys=["img", "seg"]),
70+
EnsureChannelFirstd(keys=["img", "seg"]),
7171
ScaleIntensityd(keys=["img", "seg"]),
7272
]
7373
)

3d_classification/densenet_training_array.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102
"from monai.config import print_config\n",
103103
"from monai.data import DataLoader, ImageDataset\n",
104104
"from monai.transforms import (\n",
105-
" AddChannel,\n",
105+
" EnsureChannelFirst,\n",
106106
" Compose,\n",
107107
" RandRotate90,\n",
108108
" Resize,\n",
@@ -224,9 +224,9 @@
224224
],
225225
"source": [
226226
"# Define transforms\n",
227-
"train_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), RandRotate90()])\n",
227+
"train_transforms = Compose([ScaleIntensity(), EnsureChannelFirst(), Resize((96, 96, 96)), RandRotate90()])\n",
228228
"\n",
229-
"val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96))])\n",
229+
"val_transforms = Compose([ScaleIntensity(), EnsureChannelFirst(), Resize((96, 96, 96))])\n",
230230
"\n",
231231
"# Define nifti dataset, data loader\n",
232232
"check_ds = ImageDataset(image_files=images, labels=labels, transform=train_transforms)\n",

3d_classification/torch/densenet_evaluation_array.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import monai
2020
from monai.data import CSVSaver, ImageDataset, DataLoader
21-
from monai.transforms import AddChannel, Compose, Resize, ScaleIntensity
21+
from monai.transforms import EnsureChannelFirst, Compose, Resize, ScaleIntensity
2222

2323

2424
def main():
@@ -46,7 +46,7 @@ def main():
4646
labels = np.array([0, 0, 1, 0, 1, 0, 1, 0, 1, 0], dtype=np.int64)
4747

4848
# Define transforms for image
49-
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96))])
49+
val_transforms = Compose([ScaleIntensity(), EnsureChannelFirst(), Resize((96, 96, 96))])
5050

5151
# Define image dataset
5252
val_ds = ImageDataset(image_files=images, labels=labels, transform=val_transforms, image_only=True)

3d_classification/torch/densenet_evaluation_dict.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import monai
2020
from monai.data import CSVSaver, DataLoader
21-
from monai.transforms import AddChanneld, Compose, LoadImaged, Resized, ScaleIntensityd
21+
from monai.transforms import Compose, LoadImaged, Resized, ScaleIntensityd
2222

2323

2424
def main():
@@ -49,8 +49,7 @@ def main():
4949
# Define transforms for image
5050
val_transforms = Compose(
5151
[
52-
LoadImaged(keys=["img"]),
53-
AddChanneld(keys=["img"]),
52+
LoadImaged(keys=["img"], ensure_channel_first=True),
5453
ScaleIntensityd(keys=["img"]),
5554
Resized(keys=["img"], spatial_size=(96, 96, 96)),
5655
]

3d_classification/torch/densenet_training_array.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import monai
2121
from monai.data import ImageDataset, DataLoader
22-
from monai.transforms import AddChannel, Compose, RandRotate90, Resize, ScaleIntensity
22+
from monai.transforms import EnsureChannelFirst, Compose, RandRotate90, Resize, ScaleIntensity
2323

2424

2525
def main():
@@ -57,8 +57,8 @@ def main():
5757
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)
5858

5959
# Define transforms
60-
train_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96)), RandRotate90()])
61-
val_transforms = Compose([ScaleIntensity(), AddChannel(), Resize((96, 96, 96))])
60+
train_transforms = Compose([ScaleIntensity(), EnsureChannelFirst(), Resize((96, 96, 96)), RandRotate90()])
61+
val_transforms = Compose([ScaleIntensity(), EnsureChannelFirst(), Resize((96, 96, 96))])
6262

6363
# Define image dataset, data loader
6464
check_ds = ImageDataset(image_files=images, labels=labels, transform=train_transforms)

3d_classification/torch/densenet_training_dict.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import monai
2121
from monai.data import decollate_batch, DataLoader
2222
from monai.metrics import ROCAUCMetric
23-
from monai.transforms import Activations, AddChanneld, AsDiscrete, Compose, LoadImaged, RandRotate90d, Resized, ScaleIntensityd
23+
from monai.transforms import Activations, AsDiscrete, Compose, LoadImaged, RandRotate90d, Resized, ScaleIntensityd
2424

2525

2626
def main():
@@ -62,17 +62,15 @@ def main():
6262
# Define transforms for image
6363
train_transforms = Compose(
6464
[
65-
LoadImaged(keys=["img"]),
66-
AddChanneld(keys=["img"]),
65+
LoadImaged(keys=["img"], ensure_channel_first=True),
6766
ScaleIntensityd(keys=["img"]),
6867
Resized(keys=["img"], spatial_size=(96, 96, 96)),
6968
RandRotate90d(keys=["img"], prob=0.8, spatial_axes=[0, 2]),
7069
]
7170
)
7271
val_transforms = Compose(
7372
[
74-
LoadImaged(keys=["img"]),
75-
AddChanneld(keys=["img"]),
73+
LoadImaged(keys=["img"], ensure_channel_first=True),
7674
ScaleIntensityd(keys=["img"]),
7775
Resized(keys=["img"], spatial_size=(96, 96, 96)),
7876
]

3d_segmentation/challenge_baseline/run_net.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import monai
2525
from monai.handlers import CheckpointSaver, MeanDice, StatsHandler, ValidationHandler, from_engine
2626
from monai.transforms import (
27-
AddChanneld,
2827
AsDiscreted,
2928
CastToTyped,
3029
LoadImaged,
@@ -43,8 +42,7 @@ def get_xforms(mode="train", keys=("image", "label")):
4342
"""returns a composed transform for train/val/infer."""
4443

4544
xforms = [
46-
LoadImaged(keys),
47-
AddChanneld(keys),
45+
LoadImaged(keys, ensure_channel_first=True),
4846
Orientationd(keys, axcodes="LPS"),
4947
Spacingd(keys, pixdim=(1.25, 1.25, 5.0), mode=("bilinear", "nearest")[: len(keys)]),
5048
ScaleIntensityRanged(keys[0], a_min=-1000.0, a_max=500.0, b_min=0.0, b_max=1.0, clip=True),

3d_segmentation/ignite/unet_evaluation_array.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from monai.handlers import CheckpointLoader, MeanDice, StatsHandler
2626
from monai.inferers import sliding_window_inference
2727
from monai.networks.nets import UNet
28-
from monai.transforms import Activations, AddChannel, AsDiscrete, Compose, SaveImage, ScaleIntensity
28+
from monai.transforms import Activations, EnsureChannelFirst, AsDiscrete, Compose, SaveImage, ScaleIntensity
2929

3030

3131
def main(tempdir):
@@ -46,8 +46,8 @@ def main(tempdir):
4646
segs = sorted(glob(os.path.join(tempdir, "seg*.nii.gz")))
4747

4848
# define transforms for image and segmentation
49-
imtrans = Compose([ScaleIntensity(), AddChannel()])
50-
segtrans = Compose([AddChannel()])
49+
imtrans = Compose([ScaleIntensity(), EnsureChannelFirst()])
50+
segtrans = Compose([EnsureChannelFirst()])
5151
ds = ImageDataset(images, segs, transform=imtrans, seg_transform=segtrans, image_only=False)
5252

5353
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

3d_segmentation/ignite/unet_evaluation_dict.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from monai.handlers import CheckpointLoader, MeanDice, StatsHandler
2727
from monai.inferers import sliding_window_inference
2828
from monai.networks.nets import UNet
29-
from monai.transforms import Activations, AsChannelFirstd, AsDiscrete, Compose, LoadImaged, SaveImage, ScaleIntensityd
29+
from monai.transforms import Activations, EnsureChannelFirstd, AsDiscrete, Compose, LoadImaged, SaveImage, ScaleIntensityd
3030

3131

3232
def main(tempdir):
@@ -51,7 +51,7 @@ def main(tempdir):
5151
val_transforms = Compose(
5252
[
5353
LoadImaged(keys=["img", "seg"]),
54-
AsChannelFirstd(keys=["img", "seg"], channel_dim=-1),
54+
EnsureChannelFirstd(keys=["img", "seg"]),
5555
ScaleIntensityd(keys="img"),
5656
]
5757
)

3d_segmentation/ignite/unet_training_array.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
)
3333
from monai.transforms import (
3434
Activations,
35-
AddChannel,
35+
EnsureChannelFirst,
3636
AsDiscrete,
3737
Compose,
3838
RandSpatialCrop,
@@ -63,17 +63,17 @@ def main(tempdir):
6363
train_imtrans = Compose(
6464
[
6565
ScaleIntensity(),
66-
AddChannel(),
66+
EnsureChannelFirst(),
6767
RandSpatialCrop((96, 96, 96), random_size=False),
6868
]
6969
)
7070
train_segtrans = Compose(
71-
[AddChannel(), RandSpatialCrop((96, 96, 96), random_size=False)]
71+
[EnsureChannelFirst(), RandSpatialCrop((96, 96, 96), random_size=False)]
7272
)
7373
val_imtrans = Compose(
74-
[ScaleIntensity(), AddChannel(), Resize((96, 96, 96))]
74+
[ScaleIntensity(), EnsureChannelFirst(), Resize((96, 96, 96))]
7575
)
76-
val_segtrans = Compose([AddChannel(), Resize((96, 96, 96))])
76+
val_segtrans = Compose([EnsureChannelFirst(), Resize((96, 96, 96))])
7777

7878
# define image dataset, data loader
7979
check_ds = ImageDataset(

3d_segmentation/ignite/unet_training_dict.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
)
3939
from monai.transforms import (
4040
Activations,
41-
AsChannelFirstd,
41+
EnsureChannelFirstd,
4242
AsDiscrete,
4343
Compose,
4444
LoadImaged,
@@ -72,7 +72,7 @@ def main(tempdir):
7272
train_transforms = Compose(
7373
[
7474
LoadImaged(keys=["img", "seg"]),
75-
AsChannelFirstd(keys=["img", "seg"], channel_dim=-1),
75+
EnsureChannelFirstd(keys=["img", "seg"]),
7676
ScaleIntensityd(keys="img"),
7777
RandCropByPosNegLabeld(
7878
keys=["img", "seg"],
@@ -88,7 +88,7 @@ def main(tempdir):
8888
val_transforms = Compose(
8989
[
9090
LoadImaged(keys=["img", "seg"]),
91-
AsChannelFirstd(keys=["img", "seg"], channel_dim=-1),
91+
EnsureChannelFirstd(keys=["img", "seg"]),
9292
ScaleIntensityd(keys="img"),
9393
]
9494
)

0 commit comments

Comments
 (0)