-
Notifications
You must be signed in to change notification settings - Fork 781
set_determinism() not effect on transforms #574
Copy link
Copy link
Closed
Project-MONAI/MONAI
#3855Labels
questionFurther information is requestedFurther information is requested
Description
I get different results when I execute the following code
from monai.data import write_nifti
from monai.utils import set_determinism
from monai.transforms import (
AddChanneld,
LoadImaged,
SpatialPadd,
RandCropByPosNegLabeld
)
import os
import glob
**set_determinism(0)** ##not effect
data_dir = "G:\Debug\\fineseg\Task08_HepaticVessel"
train_images = sorted(
glob.glob(os.path.join(data_dir, "imagesTr", "*.nii.gz")))
train_labels = sorted(
glob.glob(os.path.join(data_dir, "labelsTr", "*.nii.gz")))
data_dicts = [
{"image": image_name, "label": label_name}
for image_name, label_name in zip(train_images, train_labels)
]
train_data_dicts, val_data_dicts = data_dicts[:-9], data_dicts[-9:]
predict_root="G:\Debug\\fineseg\predict"
loader = LoadImaged(keys=("image", "label"))
data_dict = loader(train_data_dicts[0])
print(f"input:, {train_data_dicts[0]}")
print(f"image shape: {data_dict['image'].shape}")
print(f"label shape: {data_dict['label'].shape}")
print(f"image pixdim:\n{data_dict['image_meta_dict']['pixdim']}")
add_channel = AddChanneld(keys=["image", "label"])
data_dict = add_channel(data_dict)
spatial_pad=SpatialPadd(spatial_size = [512,512,160],method = 'end'
,keys = ["image", "label"])
data_dict = spatial_pad(data_dict)
crop = RandCropByPosNegLabeld(num_samples = 200,keys = ["image", "label"],pos = 1,neg = 0 ,spatial_size = [160,160,160],label_key = "label")
data_dict = crop(data_dict)
for i in range(0,10):
write_nifti(data =data_dict[i]['image'].squeeze(0), file_name = os.path.join(predict_root, str(i)+".nii.gz"))
print(data_dict[i]['image'].sum()) # debug image data
write_nifti(data = data_dict[i]['label'].squeeze(0), file_name = os.path.join(predict_root, str(i) + "label.nii.gz"))The different results are:
-55316384.0
-134774880.0
-304366240.0
-51307344.0
-236706260.0
-59005348.0
-306887230.0
-60515810.0
-76919900.0
-69706830.0
-219979220.0
-207145660.0
-164953630.0
-150721400.0
-150822340.0
-173407470.0
-56645576.0
-180479340.0
-96035400.0
-116822020.0
Only after the transform.set_random_state() is set can get a definitive result:
crop = RandCropByPosNegLabeld(num_samples = 200,keys = ["image", "label"],pos = 1,neg = 0 ,spatial_size = [160,160,160],label_key = "label").set_random_state(0)
-170941440.0
-255337710.0
-168783200.0
-122861896.0
-55514240.0
-32203108.0
-50595764.0
-153388750.0
-86931790.0
-95088110.0
I wonder why this is happend? Thanks in advance!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requested