diff --git a/260_gt_nnUNetResEncUNetLPlans.json b/260_gt_nnUNetResEncUNetLPlans.json new file mode 100644 index 0000000000000000000000000000000000000000..fec0214146cd097f3ef7e468334fc5ba9908422b --- /dev/null +++ b/260_gt_nnUNetResEncUNetLPlans.json @@ -0,0 +1,521 @@ +{ + "dataset_name": "Dataset261_synthrad2025_task1_CT_AB_pre_v2r_stitched_masked", + "plans_name": "nnUNetResEncUNetLPlans", + "original_median_spacing_after_transp": [ + 3.0, + 1.0, + 1.0 + ], + "original_median_shape_after_transp": [ + 99, + 442, + 465 + ], + "image_reader_writer": "SimpleITKIO", + "transpose_forward": [ + 0, + 1, + 2 + ], + "transpose_backward": [ + 0, + 1, + 2 + ], + "configurations": { + "2d": { + "data_identifier": "nnUNetPlans_2d", + "preprocessor_name": "DefaultPreprocessor", + "batch_size": 13, + "patch_size": [ + 448, + 512 + ], + "median_image_size_in_voxels": [ + 442.0, + 465.0 + ], + "spacing": [ + 1.0, + 1.0 + ], + "normalization_schemes": [ + "CTNormalizationClippingSynthrad2025" + ], + "use_mask_for_norm": [ + false + ], + "resampling_fn_data": "resample_data_or_seg_to_shape", + "resampling_fn_seg": "resample_data_or_seg_to_shape", + "resampling_fn_data_kwargs": { + "is_seg": false, + "order": 3, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_seg_kwargs": { + "is_seg": true, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_probabilities": "resample_data_or_seg_to_shape", + "resampling_fn_probabilities_kwargs": { + "is_seg": false, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "architecture": { + "network_class_name": "dynamic_network_architectures.architectures.unet.ResidualEncoderUNet", + "arch_kwargs": { + "n_stages": 7, + "features_per_stage": [ + 32, + 64, + 128, + 256, + 512, + 512, + 512 + ], + "conv_op": "torch.nn.modules.conv.Conv2d", + "kernel_sizes": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "strides": [ + [ + 1, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ] + ], + "n_blocks_per_stage": [ + 1, + 3, + 4, + 6, + 6, + 6, + 6 + ], + "n_conv_per_stage_decoder": [ + 1, + 1, + 1, + 1, + 1, + 1 + ], + "conv_bias": true, + "norm_op": "torch.nn.modules.instancenorm.InstanceNorm2d", + "norm_op_kwargs": { + "eps": 1e-05, + "affine": true + }, + "dropout_op": null, + "dropout_op_kwargs": null, + "nonlin": "torch.nn.LeakyReLU", + "nonlin_kwargs": { + "inplace": true + } + }, + "_kw_requires_import": [ + "conv_op", + "norm_op", + "dropout_op", + "nonlin" + ] + }, + "batch_dice": true + }, + "3d_lowres": { + "data_identifier": "nnUNetResEncUNetLPlans_3d_lowres", + "preprocessor_name": "DefaultPreprocessor", + "batch_size": 2, + "patch_size": [ + 64, + 192, + 192 + ], + "median_image_size_in_voxels": [ + 99, + 292, + 307 + ], + "spacing": [ + 3.0, + 1.512589724855112, + 1.512589724855112 + ], + "normalization_schemes": [ + "CTNormalizationClippingSynthrad2025" + ], + "use_mask_for_norm": [ + false + ], + "resampling_fn_data": "resample_data_or_seg_to_shape", + "resampling_fn_seg": "resample_data_or_seg_to_shape", + "resampling_fn_data_kwargs": { + "is_seg": false, + "order": 3, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_seg_kwargs": { + "is_seg": true, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_probabilities": "resample_data_or_seg_to_shape", + "resampling_fn_probabilities_kwargs": { + "is_seg": false, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "architecture": { + "network_class_name": "dynamic_network_architectures.architectures.unet.ResidualEncoderUNet", + "arch_kwargs": { + "n_stages": 6, + "features_per_stage": [ + 32, + 64, + 128, + 256, + 320, + 320 + ], + "conv_op": "torch.nn.modules.conv.Conv3d", + "kernel_sizes": [ + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ] + ], + "strides": [ + [ + 1, + 1, + 1 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 1, + 2, + 2 + ] + ], + "n_blocks_per_stage": [ + 1, + 3, + 4, + 6, + 6, + 6 + ], + "n_conv_per_stage_decoder": [ + 1, + 1, + 1, + 1, + 1 + ], + "conv_bias": true, + "norm_op": "torch.nn.modules.instancenorm.InstanceNorm3d", + "norm_op_kwargs": { + "eps": 1e-05, + "affine": true + }, + "dropout_op": null, + "dropout_op_kwargs": null, + "nonlin": "torch.nn.LeakyReLU", + "nonlin_kwargs": { + "inplace": true + } + }, + "_kw_requires_import": [ + "conv_op", + "norm_op", + "dropout_op", + "nonlin" + ] + }, + "batch_dice": false, + "next_stage": "3d_cascade_fullres" + }, + "3d_fullres": { + "data_identifier": "nnUNetPlans_3d_fullres", + "preprocessor_name": "DefaultPreprocessor", + "batch_size": 2, + "patch_size": [ + 40, + 192, + 224 + ], + "median_image_size_in_voxels": [ + 99.0, + 442.0, + 465.0 + ], + "spacing": [ + 3.0, + 1.0, + 1.0 + ], + "normalization_schemes": [ + "CTNormalizationClippingSynthrad2025" + ], + "use_mask_for_norm": [ + false + ], + "resampling_fn_data": "resample_data_or_seg_to_shape", + "resampling_fn_seg": "resample_data_or_seg_to_shape", + "resampling_fn_data_kwargs": { + "is_seg": false, + "order": 3, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_seg_kwargs": { + "is_seg": true, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_probabilities": "resample_data_or_seg_to_shape", + "resampling_fn_probabilities_kwargs": { + "is_seg": false, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "architecture": { + "network_class_name": "dynamic_network_architectures.architectures.unet.ResidualEncoderUNet", + "arch_kwargs": { + "n_stages": 6, + "features_per_stage": [ + 32, + 64, + 128, + 256, + 320, + 320 + ], + "conv_op": "torch.nn.modules.conv.Conv3d", + "kernel_sizes": [ + [ + 1, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ] + ], + "strides": [ + [ + 1, + 1, + 1 + ], + [ + 1, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 1, + 2, + 2 + ] + ], + "n_blocks_per_stage": [ + 1, + 3, + 4, + 6, + 6, + 6 + ], + "n_conv_per_stage_decoder": [ + 1, + 1, + 1, + 1, + 1 + ], + "conv_bias": true, + "norm_op": "torch.nn.modules.instancenorm.InstanceNorm3d", + "norm_op_kwargs": { + "eps": 1e-05, + "affine": true + }, + "dropout_op": null, + "dropout_op_kwargs": null, + "nonlin": "torch.nn.LeakyReLU", + "nonlin_kwargs": { + "inplace": true + } + }, + "_kw_requires_import": [ + "conv_op", + "norm_op", + "dropout_op", + "nonlin" + ] + }, + "batch_dice": true + }, + "3d_cascade_fullres": { + "inherits_from": "3d_fullres", + "previous_stage": "3d_lowres" + } + }, + "experiment_planner_used": "nnUNetPlannerResEncL", + "label_manager": "LabelManager", + "foreground_intensity_properties_per_channel": { + "0": { + "max": 3958.0, + "mean": -226.3246612548828, + "median": -81.0, + "min": -1502.0, + "percentile_00_5": -1024.0, + "percentile_99_5": 566.0, + "std": 396.30517578125 + } + } +} \ No newline at end of file diff --git a/262_gt_nnUNetResEncUNetLPlans.json b/262_gt_nnUNetResEncUNetLPlans.json new file mode 100644 index 0000000000000000000000000000000000000000..522b677c54bccc2d9b9000daf76ae6d4505ecaa1 --- /dev/null +++ b/262_gt_nnUNetResEncUNetLPlans.json @@ -0,0 +1,356 @@ +{ + "dataset_name": "Dataset263_synthrad2025_task1_CT_HN_pre_v2r_stitched_masked", + "plans_name": "nnUNetResEncUNetLPlans", + "original_median_spacing_after_transp": [ + 3.0, + 1.0, + 1.0 + ], + "original_median_shape_after_transp": [ + 89, + 296, + 279 + ], + "image_reader_writer": "SimpleITKIO", + "transpose_forward": [ + 0, + 1, + 2 + ], + "transpose_backward": [ + 0, + 1, + 2 + ], + "configurations": { + "2d": { + "data_identifier": "nnUNetPlans_2d", + "preprocessor_name": "DefaultPreprocessor", + "batch_size": 30, + "patch_size": [ + 320, + 320 + ], + "median_image_size_in_voxels": [ + 296.0, + 279.0 + ], + "spacing": [ + 1.0, + 1.0 + ], + "normalization_schemes": [ + "CTNormalizationClippingSynthrad2025" + ], + "use_mask_for_norm": [ + false + ], + "resampling_fn_data": "resample_data_or_seg_to_shape", + "resampling_fn_seg": "resample_data_or_seg_to_shape", + "resampling_fn_data_kwargs": { + "is_seg": false, + "order": 3, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_seg_kwargs": { + "is_seg": true, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_probabilities": "resample_data_or_seg_to_shape", + "resampling_fn_probabilities_kwargs": { + "is_seg": false, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "architecture": { + "network_class_name": "dynamic_network_architectures.architectures.unet.ResidualEncoderUNet", + "arch_kwargs": { + "n_stages": 7, + "features_per_stage": [ + 32, + 64, + 128, + 256, + 512, + 512, + 512 + ], + "conv_op": "torch.nn.modules.conv.Conv2d", + "kernel_sizes": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "strides": [ + [ + 1, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ] + ], + "n_blocks_per_stage": [ + 1, + 3, + 4, + 6, + 6, + 6, + 6 + ], + "n_conv_per_stage_decoder": [ + 1, + 1, + 1, + 1, + 1, + 1 + ], + "conv_bias": true, + "norm_op": "torch.nn.modules.instancenorm.InstanceNorm2d", + "norm_op_kwargs": { + "eps": 1e-05, + "affine": true + }, + "dropout_op": null, + "dropout_op_kwargs": null, + "nonlin": "torch.nn.LeakyReLU", + "nonlin_kwargs": { + "inplace": true + } + }, + "_kw_requires_import": [ + "conv_op", + "norm_op", + "dropout_op", + "nonlin" + ] + }, + "batch_dice": true + }, + "3d_fullres": { + "data_identifier": "nnUNetPlans_3d_fullres", + "preprocessor_name": "DefaultPreprocessor", + "batch_size": 2, + "patch_size": [ + 56, + 192, + 160 + ], + "median_image_size_in_voxels": [ + 89.0, + 296.0, + 279.0 + ], + "spacing": [ + 3.0, + 1.0, + 1.0 + ], + "normalization_schemes": [ + "CTNormalizationClippingSynthrad2025" + ], + "use_mask_for_norm": [ + false + ], + "resampling_fn_data": "resample_data_or_seg_to_shape", + "resampling_fn_seg": "resample_data_or_seg_to_shape", + "resampling_fn_data_kwargs": { + "is_seg": false, + "order": 3, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_seg_kwargs": { + "is_seg": true, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_probabilities": "resample_data_or_seg_to_shape", + "resampling_fn_probabilities_kwargs": { + "is_seg": false, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "architecture": { + "network_class_name": "dynamic_network_architectures.architectures.unet.ResidualEncoderUNet", + "arch_kwargs": { + "n_stages": 6, + "features_per_stage": [ + 32, + 64, + 128, + 256, + 320, + 320 + ], + "conv_op": "torch.nn.modules.conv.Conv3d", + "kernel_sizes": [ + [ + 1, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ] + ], + "strides": [ + [ + 1, + 1, + 1 + ], + [ + 1, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 1, + 2, + 2 + ] + ], + "n_blocks_per_stage": [ + 1, + 3, + 4, + 6, + 6, + 6 + ], + "n_conv_per_stage_decoder": [ + 1, + 1, + 1, + 1, + 1 + ], + "conv_bias": true, + "norm_op": "torch.nn.modules.instancenorm.InstanceNorm3d", + "norm_op_kwargs": { + "eps": 1e-05, + "affine": true + }, + "dropout_op": null, + "dropout_op_kwargs": null, + "nonlin": "torch.nn.LeakyReLU", + "nonlin_kwargs": { + "inplace": true + } + }, + "_kw_requires_import": [ + "conv_op", + "norm_op", + "dropout_op", + "nonlin" + ] + }, + "batch_dice": false + } + }, + "experiment_planner_used": "nnUNetPlannerResEncL", + "label_manager": "LabelManager", + "foreground_intensity_properties_per_channel": { + "0": { + "max": 3940.0, + "mean": -137.8296356201172, + "median": 12.0, + "min": -1708.0, + "percentile_00_5": -1018.0, + "percentile_99_5": 1349.0, + "std": 482.0824279785156 + } + } +} \ No newline at end of file diff --git a/264_gt_nnUNetResEncUNetLPlans.json b/264_gt_nnUNetResEncUNetLPlans.json new file mode 100644 index 0000000000000000000000000000000000000000..baedf16c64a6cf5d4705e1b612856c967ea15fae --- /dev/null +++ b/264_gt_nnUNetResEncUNetLPlans.json @@ -0,0 +1,521 @@ +{ + "dataset_name": "Dataset265_synthrad2025_task1_CT_TH_pre_v2r_stitched_masked", + "plans_name": "nnUNetResEncUNetLPlans", + "original_median_spacing_after_transp": [ + 3.0, + 1.0, + 1.0 + ], + "original_median_shape_after_transp": [ + 108, + 476, + 536 + ], + "image_reader_writer": "SimpleITKIO", + "transpose_forward": [ + 0, + 1, + 2 + ], + "transpose_backward": [ + 0, + 1, + 2 + ], + "configurations": { + "2d": { + "data_identifier": "nnUNetPlans_2d", + "preprocessor_name": "DefaultPreprocessor", + "batch_size": 13, + "patch_size": [ + 448, + 512 + ], + "median_image_size_in_voxels": [ + 476.0, + 536.0 + ], + "spacing": [ + 1.0, + 1.0 + ], + "normalization_schemes": [ + "CTNormalizationClippingSynthrad2025" + ], + "use_mask_for_norm": [ + false + ], + "resampling_fn_data": "resample_data_or_seg_to_shape", + "resampling_fn_seg": "resample_data_or_seg_to_shape", + "resampling_fn_data_kwargs": { + "is_seg": false, + "order": 3, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_seg_kwargs": { + "is_seg": true, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_probabilities": "resample_data_or_seg_to_shape", + "resampling_fn_probabilities_kwargs": { + "is_seg": false, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "architecture": { + "network_class_name": "dynamic_network_architectures.architectures.unet.ResidualEncoderUNet", + "arch_kwargs": { + "n_stages": 7, + "features_per_stage": [ + 32, + 64, + 128, + 256, + 512, + 512, + 512 + ], + "conv_op": "torch.nn.modules.conv.Conv2d", + "kernel_sizes": [ + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 3 + ] + ], + "strides": [ + [ + 1, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ] + ], + "n_blocks_per_stage": [ + 1, + 3, + 4, + 6, + 6, + 6, + 6 + ], + "n_conv_per_stage_decoder": [ + 1, + 1, + 1, + 1, + 1, + 1 + ], + "conv_bias": true, + "norm_op": "torch.nn.modules.instancenorm.InstanceNorm2d", + "norm_op_kwargs": { + "eps": 1e-05, + "affine": true + }, + "dropout_op": null, + "dropout_op_kwargs": null, + "nonlin": "torch.nn.LeakyReLU", + "nonlin_kwargs": { + "inplace": true + } + }, + "_kw_requires_import": [ + "conv_op", + "norm_op", + "dropout_op", + "nonlin" + ] + }, + "batch_dice": true + }, + "3d_lowres": { + "data_identifier": "nnUNetResEncUNetLPlans_3d_lowres", + "preprocessor_name": "DefaultPreprocessor", + "batch_size": 2, + "patch_size": [ + 64, + 192, + 192 + ], + "median_image_size_in_voxels": [ + 98, + 288, + 324 + ], + "spacing": [ + 3.278181, + 1.652847632271752, + 1.652847632271752 + ], + "normalization_schemes": [ + "CTNormalizationClippingSynthrad2025" + ], + "use_mask_for_norm": [ + false + ], + "resampling_fn_data": "resample_data_or_seg_to_shape", + "resampling_fn_seg": "resample_data_or_seg_to_shape", + "resampling_fn_data_kwargs": { + "is_seg": false, + "order": 3, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_seg_kwargs": { + "is_seg": true, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_probabilities": "resample_data_or_seg_to_shape", + "resampling_fn_probabilities_kwargs": { + "is_seg": false, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "architecture": { + "network_class_name": "dynamic_network_architectures.architectures.unet.ResidualEncoderUNet", + "arch_kwargs": { + "n_stages": 6, + "features_per_stage": [ + 32, + 64, + 128, + 256, + 320, + 320 + ], + "conv_op": "torch.nn.modules.conv.Conv3d", + "kernel_sizes": [ + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ] + ], + "strides": [ + [ + 1, + 1, + 1 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 1, + 2, + 2 + ] + ], + "n_blocks_per_stage": [ + 1, + 3, + 4, + 6, + 6, + 6 + ], + "n_conv_per_stage_decoder": [ + 1, + 1, + 1, + 1, + 1 + ], + "conv_bias": true, + "norm_op": "torch.nn.modules.instancenorm.InstanceNorm3d", + "norm_op_kwargs": { + "eps": 1e-05, + "affine": true + }, + "dropout_op": null, + "dropout_op_kwargs": null, + "nonlin": "torch.nn.LeakyReLU", + "nonlin_kwargs": { + "inplace": true + } + }, + "_kw_requires_import": [ + "conv_op", + "norm_op", + "dropout_op", + "nonlin" + ] + }, + "batch_dice": false, + "next_stage": "3d_cascade_fullres" + }, + "3d_fullres": { + "data_identifier": "nnUNetPlans_3d_fullres", + "preprocessor_name": "DefaultPreprocessor", + "batch_size": 2, + "patch_size": [ + 40, + 192, + 224 + ], + "median_image_size_in_voxels": [ + 107.5, + 476.0, + 536.0 + ], + "spacing": [ + 3.0, + 1.0, + 1.0 + ], + "normalization_schemes": [ + "CTNormalizationClippingSynthrad2025" + ], + "use_mask_for_norm": [ + false + ], + "resampling_fn_data": "resample_data_or_seg_to_shape", + "resampling_fn_seg": "resample_data_or_seg_to_shape", + "resampling_fn_data_kwargs": { + "is_seg": false, + "order": 3, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_seg_kwargs": { + "is_seg": true, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "resampling_fn_probabilities": "resample_data_or_seg_to_shape", + "resampling_fn_probabilities_kwargs": { + "is_seg": false, + "order": 1, + "order_z": 0, + "force_separate_z": null + }, + "architecture": { + "network_class_name": "dynamic_network_architectures.architectures.unet.ResidualEncoderUNet", + "arch_kwargs": { + "n_stages": 6, + "features_per_stage": [ + 32, + 64, + 128, + 256, + 320, + 320 + ], + "conv_op": "torch.nn.modules.conv.Conv3d", + "kernel_sizes": [ + [ + 1, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ], + [ + 3, + 3, + 3 + ] + ], + "strides": [ + [ + 1, + 1, + 1 + ], + [ + 1, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 1, + 2, + 2 + ] + ], + "n_blocks_per_stage": [ + 1, + 3, + 4, + 6, + 6, + 6 + ], + "n_conv_per_stage_decoder": [ + 1, + 1, + 1, + 1, + 1 + ], + "conv_bias": true, + "norm_op": "torch.nn.modules.instancenorm.InstanceNorm3d", + "norm_op_kwargs": { + "eps": 1e-05, + "affine": true + }, + "dropout_op": null, + "dropout_op_kwargs": null, + "nonlin": "torch.nn.LeakyReLU", + "nonlin_kwargs": { + "inplace": true + } + }, + "_kw_requires_import": [ + "conv_op", + "norm_op", + "dropout_op", + "nonlin" + ] + }, + "batch_dice": true + }, + "3d_cascade_fullres": { + "inherits_from": "3d_fullres", + "previous_stage": "3d_lowres" + } + }, + "experiment_planner_used": "nnUNetPlannerResEncL", + "label_manager": "LabelManager", + "foreground_intensity_properties_per_channel": { + "0": { + "max": 3867.0, + "mean": -282.4960632324219, + "median": -94.0, + "min": -1607.0, + "percentile_00_5": -1024.0, + "percentile_99_5": 630.0, + "std": 427.12237548828125 + } + } +} \ No newline at end of file diff --git a/app.py b/app.py index f83af382d006b2649e3d35065f466280836f1965..e2c364197d55b094b9476dc3987535b8ad8de00c 100644 --- a/app.py +++ b/app.py @@ -3,7 +3,7 @@ import os from huggingface_hub import snapshot_download from PIL import Image, ImageDraw -HF_REPO = "aehrc/Synthrad2025" +HF_REPO = "Synthard2025KoalAI/synthrad2025_task1" LOCAL_WEIGHTS_DIR = os.path.abspath("weights/task1") token = os.getenv("HF_TOKEN") @@ -19,7 +19,7 @@ repo_dir = snapshot_download( token=token, ) print(repo_dir) -os.environ["nnUNet_results"] = repo_dir +os.environ["nnUNet_results"] = repo_dir os.environ.setdefault("nnUNet_raw", "./nnunet_raw") os.environ.setdefault("nnUNet_preprocessed", "./nnunet_preprocessed") os.environ["OPENBLAS_NUM_THREADS"] = "1" @@ -29,13 +29,13 @@ import numpy as np import SimpleITK as sitk import io -from process import SynthradAlgorithm +from process import SynthradAlgorithm2 st.set_page_config(page_title="SynthRad (nnUNetv2) Demo", layout="wide") st.title("SynthRad (MRI/CBCT + Mask → synthetic CT) — Streamlit Demo") if "algo" not in st.session_state: - st.session_state.algo = SynthradAlgorithm() + st.session_state.algo = SynthradAlgorithm2() if "synth_ct" not in st.session_state: st.session_state.synth_ct = None if "orig_meta" not in st.session_state: @@ -76,17 +76,17 @@ SAMPLE_MAP = { "Abdomen (sample)": { "region": "Abdomen", "mri": os.path.join(repo_dir, "Abdomen", "cbct.mha"), - "mask": os.path.join(repo_dir,"Abdomen", "mask.mha"), + "mask": os.path.join(repo_dir,"Abdomen", "mask2.mha"), }, "Head and Neck (sample)": { "region": "Head and Neck", "mri": os.path.join(repo_dir, "Head and Neck", "cbct.mha"), - "mask": os.path.join(repo_dir, "Head and Neck", "mask.mha"), + "mask": os.path.join(repo_dir, "Head and Neck", "mask2.mha"), }, "Thorax (sample)": { "region": "Thorax", "mri": os.path.join(repo_dir, "Thorax", "cbct.mha"), - "mask": os.path.join(repo_dir, "Thorax", "mask.mha"), + "mask": os.path.join(repo_dir, "Thorax", "mask2.mha"), }, } c1, c2, c3 = st.columns([2, 2, 1]) diff --git a/app_2.py b/app_2.py new file mode 100644 index 0000000000000000000000000000000000000000..b9a9e6c07199514dabfa182fb1cf8d45ff3c2857 --- /dev/null +++ b/app_2.py @@ -0,0 +1,283 @@ +# app.py +import os +import io +import tempfile +import zipfile +import numpy as np +import SimpleITK as sitk +import streamlit as st + +from PIL import Image, ImageDraw +from huggingface_hub import snapshot_download + +# ========================= +# 配置:两个任务的模型仓库 & 本地路径 +# ========================= +# 你可以将两个任务分别指向不同的 HF repo;如果都在同一个,也可以都填同一个。 +HF_REPOS = { + "Task 1 (MR → CT)": "aehrc/Synthrad2025", + "Task 2 (CBCT → CT)": "aehrc/Synthrad2025", # 如有专门CBCT→CT的repo可在此替换 +} +LOCAL_WEIGHTS_DIRS = { + "Task 1 (MR → CT)": os.path.abspath("weights/task1"), + "Task 2 (CBCT → CT)": os.path.abspath("weights/task2"), +} + +# 环境设置(Token) +token = os.getenv("HF_TOKEN") +if token is None: + print("[Warn] HF_TOKEN not set. If the model repo is private, set it in Settings → Variables and secrets.") + +# 先下载两个任务的权重(如需按需下载,可在选择任务后再下载) +REPO_DIRS = {} +for task_name, repo in HF_REPOS.items(): + repo_dir = snapshot_download( + repo_id=repo, + repo_type="model", + local_dir=LOCAL_WEIGHTS_DIRS[task_name], + local_dir_use_symlinks=False, + token=token, + ) + REPO_DIRS[task_name] = repo_dir + +# nnUNet 环境变量(指向“当前任务”的 results,会在用户切换任务时动态更新) +os.environ.setdefault("nnUNet_raw", "./nnunet_raw") +os.environ.setdefault("nnUNet_preprocessed", "./nnunet_preprocessed") +os.environ["OPENBLAS_NUM_THREADS"] = "1" + +# 从 process.py 导入两个任务的算法类 +# 确保你在 process.py 中定义了 SynthradAlgorithm1(MR→CT)和 SynthradAlgorithm2(CBCT→CT) +from process import SynthradAlgorithm2 + +from process_1 import SynthradAlgorithm1 + +# ========================= +# Streamlit UI +# ========================= +st.set_page_config(page_title="SynthRad (nnUNetv2) Demo", layout="wide") +st.title("SynthRad — 双任务演示(MRI/CBCT + Mask → synthetic CT)") + +# 任务选择 +TASKS = ["Task 1 (MR → CT)", "Task 2 (CBCT → CT)"] +task = st.radio("选择任务", TASKS, index=0, horizontal=True) + +# 根据任务设置标题/提示 +if task == "Task 1 (MR → CT)": + vol_label = "MRI volume (.nii/.nii.gz/.mha)" +else: + vol_label = "CBCT volume (.nii/.nii.gz/.mha)" + +# 动态切换 nnUNet 的 results(不同任务使用不同 results 目录) +os.environ["nnUNet_results"] = REPO_DIRS[task] + +# session_state 初始化 +if "algos" not in st.session_state: + st.session_state.algos = {} +if "synth_ct" not in st.session_state: + st.session_state.synth_ct = None +if "orig_meta" not in st.session_state: + st.session_state.orig_meta = None +if "vol_np" not in st.session_state: + st.session_state.vol_np = None +if "input_vol" not in st.session_state: + st.session_state.input_vol = None +if "input_mask" not in st.session_state: + st.session_state.input_mask = None + +# 懒加载对应任务的算法实例 +def get_algo(task_name: str): + if task_name not in st.session_state.algos: + if task_name == "Task 1 (MR → CT)": + st.session_state.algos[task_name] = SynthradAlgorithm1() + else: + st.session_state.algos[task_name] = SynthradAlgorithm2() + return st.session_state.algos[task_name] + +algo = get_algo(task) + +st.subheader("Input") +src = st.radio("Source", ["Sample", "Upload"], index=0, horizontal=True) + +# ========================= +# 样例映射(两任务可共用同一份样例,也可按需区分) +# 这里假设 repo_dir 下有如下结构: +# repo_dir/Abdomen/{cbct.mha, mask.mha} 或 {mri.mha, mask.mha} +# repo_dir/Head and Neck/{cbct.mha or mri.mha, mask.mha} +# repo_dir/Thorax/{cbct.mha or mri.mha, mask.mha} +# 如果你的文件名不同,请按需调整。 +# ========================= + +def build_sample_map(task_name: str): + repo_dir = REPO_DIRS[task_name] + if task_name == "Task 1 (MR → CT)": + vol_key = "mri" + vol_fname = "mri.mha" # 如果你的样例文件名不是 mri.mha,请改成实际名称 + mask_fname = "mask1.mha" # 如果你的样例文件名不是 mri.mha,请改成实际名称 + else: + vol_key = "cbct" + vol_fname = "cbct.mha" # 如果你的样例文件名不是 cbct.mha,请改成实际名称 + mask_fname = "mask2.mha" # 如果你的样例文件名不是 mri.mha,请改成实际名称 + sample_map = { + "Abdomen (sample)": { + "region": "Abdomen", + "vol": os.path.join(repo_dir, "Abdomen", vol_fname), + "mask": os.path.join(repo_dir, "Abdomen", mask_fname), + }, + "Head and Neck (sample)": { + "region": "Head and Neck", + "vol": os.path.join(repo_dir, "Head and Neck", vol_fname), + "mask": os.path.join(repo_dir, "Head and Neck", mask_fname), + }, + "Thorax (sample)": { + "region": "Thorax", + "vol": os.path.join(repo_dir, "Thorax", vol_fname), + "mask": os.path.join(repo_dir, "Thorax", mask_fname), + }, + } + return sample_map + +SAMPLE_MAP = build_sample_map(task) + +# ========================= +# 小工具函数 +# ========================= +def _download_sitk_image(img: sitk.Image, file_name: str, label: str): + with tempfile.NamedTemporaryFile(suffix=".nii.gz", delete=False) as tmp: + sitk.WriteImage(img, tmp.name) + tmp_path = tmp.name + with open(tmp_path, "rb") as f: + st.download_button( + label=label, + data=f.read(), + file_name=file_name, + mime="application/octet-stream", + ) + try: + os.remove(tmp_path) + except Exception: + pass + +def _read_sitk_from_uploaded(f): + suffix = ".nii.gz" if f.name.endswith(".nii.gz") else os.path.splitext(f.name)[1] + bio = io.BytesIO(f.read()) + with tempfile.NamedTemporaryFile(suffix=suffix, delete=False) as tmp: + tmp.write(bio.getvalue()); tmp.flush(); path = tmp.name + img = sitk.ReadImage(path) + try: + os.remove(path) + except Exception: + pass + return img + +def _read_sitk_from_path(path): + if not os.path.exists(path): + st.error(f"Sample file missing: {path}") + st.stop() + return sitk.ReadImage(path) + +def _norm2u8(slice2d): + s = slice2d.astype(np.float32) + s = (s - np.percentile(s, 1)) / (np.percentile(s, 99) - np.percentile(s, 1) + 1e-6) + s = np.clip(s, 0, 1) + return (s * 255).astype(np.uint8) + +# ========================= +# 输入区域(Upload or Sample) +# ========================= +c1, c2, c3 = st.columns([2, 2, 1]) + +if src == "Upload": + with c1: + vol_file = st.file_uploader(vol_label, type=["nii", "nii.gz", "mha"], key="vol") + with c2: + mask_file = st.file_uploader("Mask volume (.nii/.nii.gz/.mha)", type=["nii", "nii.gz", "mha"], key="mask") + with c3: + region = st.radio("Region", ["Head and Neck", "Abdomen", "Thorax"], index=1) + inputs_ready = (vol_file is not None) and (mask_file is not None) + region_for_run = region +else: + with c1: + sample_key = st.selectbox("Choose a sample", list(SAMPLE_MAP.keys())) + with c2: + st.markdown("Region (fixed by sample)") + st.write(f"**{SAMPLE_MAP[sample_key]['region']}**") + with c3: + st.markdown(" ", unsafe_allow_html=True) + inputs_ready = (sample_key is not None) + region_for_run = SAMPLE_MAP[sample_key]["region"] + +run_btn = st.button("Run", type="primary", disabled=not inputs_ready) + +# ========================= +# 推理 +# ========================= +if run_btn: + with st.spinner(f"Running nnUNetv2 {('SynthradAlgorithm1' if task=='Task 1 (MR → CT)' else 'SynthradAlgorithm2')}..."): + if src == "Upload": + in_vol_img = _read_sitk_from_uploaded(vol_file) + mask_img = _read_sitk_from_uploaded(mask_file) + else: + sample = SAMPLE_MAP[sample_key] + in_vol_img = _read_sitk_from_path(sample["vol"]) + mask_img = _read_sitk_from_path(sample["mask"]) + + # 保存原始元信息 + st.session_state.orig_meta = ( + in_vol_img.GetSpacing(), + in_vol_img.GetOrigin(), + in_vol_img.GetDirection(), + ) + + # 调用不同任务的算法 + # 约定:算法统一使用 dict 输入:{"image": , "mask": , "region": } + out_img = algo.predict({"image": in_vol_img, "mask": mask_img, "region": region_for_run}) + + st.session_state.synth_ct = out_img + st.session_state.vol_np = sitk.GetArrayFromImage(out_img).astype(np.float32) + st.session_state.input_vol = in_vol_img + st.session_state.input_mask = mask_img + +# ========================= +# 结果与下载 +# ========================= +if st.session_state.vol_np is None: + st.info("请先选择任务与输入(Upload 或 Sample),然后点击 Run") +else: + # 将输出转为 LPS 方向做显示(可选) + out_lps = sitk.DICOMOrient(st.session_state.synth_ct, "LPS") + vol = sitk.GetArrayFromImage(out_lps).astype(np.float32) + D, H, W = vol.shape + + col_d1, col_d2, col_d3 = st.columns(3) + + # 下载合成CT + with col_d3: + _download_sitk_image( + st.session_state.synth_ct, + file_name="synth_ct.nii.gz", + label="Download synthetic CT", + ) + + # 下载输入体积(根据任务区分命名) + with col_d1: + if st.session_state.input_vol is not None: + in_name = "input_mri.nii.gz" if task == "Task 1 (MR → CT)" else "input_cbct.nii.gz" + in_label = "Download input MRI" if task == "Task 1 (MR → CT)" else "Download input CBCT" + _download_sitk_image( + st.session_state.input_vol, + file_name=in_name, + label=in_label, + ) + else: + st.button("Download input", disabled=True) + + # 下载掩膜 + with col_d2: + if st.session_state.input_mask is not None: + _download_sitk_image( + st.session_state.input_mask, + file_name="input_mask.nii.gz", + label="Download input Mask", + ) + else: + st.button("Download input Mask", disabled=True) diff --git a/nnunetv2/__pycache__/__init__.cpython-312.pyc b/nnunetv2/__pycache__/__init__.cpython-312.pyc index b47e060ddaf91f8c4a1e0439288649d57ae4f89a..b7d946ad4f60df05c183b5d0b85827f2b675d41a 100644 Binary files a/nnunetv2/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/__pycache__/configuration.cpython-312.pyc b/nnunetv2/__pycache__/configuration.cpython-312.pyc index e440154303b230a26573fd8f0dcbdad7dd0231bd..951dde6915997796587a37c30163040e488f8d6c 100644 Binary files a/nnunetv2/__pycache__/configuration.cpython-312.pyc and b/nnunetv2/__pycache__/configuration.cpython-312.pyc differ diff --git a/nnunetv2/__pycache__/paths.cpython-312.pyc b/nnunetv2/__pycache__/paths.cpython-312.pyc index a500f864459e6174cc328a5ce7bf7ea35ac09892..d95ebff0013651d662634282f16b890dc21c7d07 100644 Binary files a/nnunetv2/__pycache__/paths.cpython-312.pyc and b/nnunetv2/__pycache__/paths.cpython-312.pyc differ diff --git a/nnunetv2/analysis/__pycache__/__init__.cpython-312.pyc b/nnunetv2/analysis/__pycache__/__init__.cpython-312.pyc index fabbf937f51d9c0b77eb112554170412aa33b7f7..56c7fcf6a69fbd57a5e80e136d1b04fea65c780d 100644 Binary files a/nnunetv2/analysis/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/analysis/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/analysis/__pycache__/image_metrics.cpython-312.pyc b/nnunetv2/analysis/__pycache__/image_metrics.cpython-312.pyc index 2c647bb946dd0b1ec286ece50ee6276d1ec4e5a3..5b11b04e698a9f063135a57668052d123297fd90 100644 Binary files a/nnunetv2/analysis/__pycache__/image_metrics.cpython-312.pyc and b/nnunetv2/analysis/__pycache__/image_metrics.cpython-312.pyc differ diff --git a/nnunetv2/analysis/__pycache__/result_analysis.cpython-312.pyc b/nnunetv2/analysis/__pycache__/result_analysis.cpython-312.pyc index 33ab8e1b4c6b608f2a8cda6590f06732d036ae8b..a61b5272520f2b7e0d5c8a472f1540e7202de32f 100644 Binary files a/nnunetv2/analysis/__pycache__/result_analysis.cpython-312.pyc and b/nnunetv2/analysis/__pycache__/result_analysis.cpython-312.pyc differ diff --git a/nnunetv2/analysis/__pycache__/revert_normalisation.cpython-312.pyc b/nnunetv2/analysis/__pycache__/revert_normalisation.cpython-312.pyc index 90b8cbe06f0bb978487cc4f3d029d23a3d6efb7d..d672f380b42c87002e8ce29ae81ee644958e1b1b 100644 Binary files a/nnunetv2/analysis/__pycache__/revert_normalisation.cpython-312.pyc and b/nnunetv2/analysis/__pycache__/revert_normalisation.cpython-312.pyc differ diff --git a/nnunetv2/evaluation/__pycache__/__init__.cpython-312.pyc b/nnunetv2/evaluation/__pycache__/__init__.cpython-312.pyc index cb491b63accdf515e29f8d887a6f637c7172999b..66d9a836b152b44a4a4db7df8b05eed86347f5cc 100644 Binary files a/nnunetv2/evaluation/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/evaluation/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/evaluation/__pycache__/evaluate_predictions.cpython-312.pyc b/nnunetv2/evaluation/__pycache__/evaluate_predictions.cpython-312.pyc index 8b51e63dce5276d90bc74d4ebe48a792c2828ef8..e1c533c0e0e8ba9d0bba13aab2a3ffdf30afdcc9 100644 Binary files a/nnunetv2/evaluation/__pycache__/evaluate_predictions.cpython-312.pyc and b/nnunetv2/evaluation/__pycache__/evaluate_predictions.cpython-312.pyc differ diff --git a/nnunetv2/imageio/__pycache__/__init__.cpython-312.pyc b/nnunetv2/imageio/__pycache__/__init__.cpython-312.pyc index 7925e0f13b2388cc1034e49f752d4f14ede29ff9..1873631e4e2a5183849bc7c3c6c2e091713dfe86 100644 Binary files a/nnunetv2/imageio/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/imageio/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/imageio/__pycache__/base_reader_writer.cpython-312.pyc b/nnunetv2/imageio/__pycache__/base_reader_writer.cpython-312.pyc index 6ecf7c8fbc3c4b9abbeeccef322cc8c75b326260..41d32a74cdb9cb17b2d3110e14059f87b12800a9 100644 Binary files a/nnunetv2/imageio/__pycache__/base_reader_writer.cpython-312.pyc and b/nnunetv2/imageio/__pycache__/base_reader_writer.cpython-312.pyc differ diff --git a/nnunetv2/imageio/__pycache__/natural_image_reader_writer.cpython-312.pyc b/nnunetv2/imageio/__pycache__/natural_image_reader_writer.cpython-312.pyc index 5fd302a7f9cdc44d4c5b6f72ef7543f465c7be3a..caa3048d53404fef968b335d9d2928974a24a338 100644 Binary files a/nnunetv2/imageio/__pycache__/natural_image_reader_writer.cpython-312.pyc and b/nnunetv2/imageio/__pycache__/natural_image_reader_writer.cpython-312.pyc differ diff --git a/nnunetv2/imageio/__pycache__/nibabel_reader_writer.cpython-312.pyc b/nnunetv2/imageio/__pycache__/nibabel_reader_writer.cpython-312.pyc index 48d58147bab41ee28d68bfcb375cc3b8484e90e2..df03add5598a6a326978ccd82350fc0434bb8925 100644 Binary files a/nnunetv2/imageio/__pycache__/nibabel_reader_writer.cpython-312.pyc and b/nnunetv2/imageio/__pycache__/nibabel_reader_writer.cpython-312.pyc differ diff --git a/nnunetv2/imageio/__pycache__/reader_writer_registry.cpython-312.pyc b/nnunetv2/imageio/__pycache__/reader_writer_registry.cpython-312.pyc index 86db15b4e09f54f41d25b89d40e977b5be26d9af..d87f6c9e5f263503791563437950f7ea8e2dea36 100644 Binary files a/nnunetv2/imageio/__pycache__/reader_writer_registry.cpython-312.pyc and b/nnunetv2/imageio/__pycache__/reader_writer_registry.cpython-312.pyc differ diff --git a/nnunetv2/imageio/__pycache__/simpleitk_reader_writer.cpython-312.pyc b/nnunetv2/imageio/__pycache__/simpleitk_reader_writer.cpython-312.pyc index bcd54e5c7be93135ecaec75ba180ed4734eec38a..a73e9276dbc616ce8b53f0d5b7b14baaa6c98d2c 100644 Binary files a/nnunetv2/imageio/__pycache__/simpleitk_reader_writer.cpython-312.pyc and b/nnunetv2/imageio/__pycache__/simpleitk_reader_writer.cpython-312.pyc differ diff --git a/nnunetv2/imageio/__pycache__/tif_reader_writer.cpython-312.pyc b/nnunetv2/imageio/__pycache__/tif_reader_writer.cpython-312.pyc index 1d1de2c90126c4e769f930602e73151c83c98876..193a129f6fc873fd823cf396626607789d5b66f6 100644 Binary files a/nnunetv2/imageio/__pycache__/tif_reader_writer.cpython-312.pyc and b/nnunetv2/imageio/__pycache__/tif_reader_writer.cpython-312.pyc differ diff --git a/nnunetv2/inference/__pycache__/__init__.cpython-312.pyc b/nnunetv2/inference/__pycache__/__init__.cpython-312.pyc index 8562ba39d8d35124e9c9a7ab1f3bd0ed7cf58269..20cfc698f83562d45967b3fa7049bc2f63e82f65 100644 Binary files a/nnunetv2/inference/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/inference/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/inference/__pycache__/data_iterators.cpython-312.pyc b/nnunetv2/inference/__pycache__/data_iterators.cpython-312.pyc index c5523627448e8a9aa197b511944b2ae68e99366b..f6b34ccb2c9e47209d2782f0f80164b6ede06880 100644 Binary files a/nnunetv2/inference/__pycache__/data_iterators.cpython-312.pyc and b/nnunetv2/inference/__pycache__/data_iterators.cpython-312.pyc differ diff --git a/nnunetv2/inference/__pycache__/export_prediction.cpython-312.pyc b/nnunetv2/inference/__pycache__/export_prediction.cpython-312.pyc index 103f189662246514aa4dca2ad73f28f93c98939c..c194d715ce1bb31e66c513b6221e1cec8994d3dd 100644 Binary files a/nnunetv2/inference/__pycache__/export_prediction.cpython-312.pyc and b/nnunetv2/inference/__pycache__/export_prediction.cpython-312.pyc differ diff --git a/nnunetv2/inference/__pycache__/predict_from_raw_data.cpython-312.pyc b/nnunetv2/inference/__pycache__/predict_from_raw_data.cpython-312.pyc index 3a1456fb43efa6a786bbb0fc3be1f0e983972151..5877c30abed12be7a0ebcf818c21ccfef80f47f5 100644 Binary files a/nnunetv2/inference/__pycache__/predict_from_raw_data.cpython-312.pyc and b/nnunetv2/inference/__pycache__/predict_from_raw_data.cpython-312.pyc differ diff --git a/nnunetv2/inference/__pycache__/sliding_window_prediction.cpython-312.pyc b/nnunetv2/inference/__pycache__/sliding_window_prediction.cpython-312.pyc index 3a88b9982417a5437e54a15ffa041e6390233ce2..e030fc3cbbb03db2592d7f46f7a1314f8893c678 100644 Binary files a/nnunetv2/inference/__pycache__/sliding_window_prediction.cpython-312.pyc and b/nnunetv2/inference/__pycache__/sliding_window_prediction.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/__pycache__/__init__.cpython-312.pyc b/nnunetv2/preprocessing/__pycache__/__init__.cpython-312.pyc index 2019faa8085900b03e897c02f29b95f84be49511..a75991fae307b499333755e0a5f039c78f4f6dd3 100644 Binary files a/nnunetv2/preprocessing/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/preprocessing/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/cropping/__pycache__/__init__.cpython-312.pyc b/nnunetv2/preprocessing/cropping/__pycache__/__init__.cpython-312.pyc index bfba43c76e4a52aad9dc302702646f7b523752c3..ddb0fb2178511d30d4251963183380b39faa53a7 100644 Binary files a/nnunetv2/preprocessing/cropping/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/preprocessing/cropping/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/cropping/__pycache__/cropping.cpython-312.pyc b/nnunetv2/preprocessing/cropping/__pycache__/cropping.cpython-312.pyc index 0bf204e337b0dbad08a9f0a49836d753e35ad717..9a514abe7592e0e5d4d43dc803c24697f8b6d919 100644 Binary files a/nnunetv2/preprocessing/cropping/__pycache__/cropping.cpython-312.pyc and b/nnunetv2/preprocessing/cropping/__pycache__/cropping.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/normalization/__pycache__/__init__.cpython-312.pyc b/nnunetv2/preprocessing/normalization/__pycache__/__init__.cpython-312.pyc index 510f5cf05d9742c775860fd31239788ca6d32f5d..ac5211dbf31fdddb4ba03c81a3252a5b296f6db9 100644 Binary files a/nnunetv2/preprocessing/normalization/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/preprocessing/normalization/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/normalization/__pycache__/default_normalization_schemes.cpython-312.pyc b/nnunetv2/preprocessing/normalization/__pycache__/default_normalization_schemes.cpython-312.pyc index 09bb846fe003200feb8955d9bde882c9ed58acba..1c2b72930260a7bbb7be17e2d9d6532e463eca04 100644 Binary files a/nnunetv2/preprocessing/normalization/__pycache__/default_normalization_schemes.cpython-312.pyc and b/nnunetv2/preprocessing/normalization/__pycache__/default_normalization_schemes.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/normalization/__pycache__/map_channel_name_to_normalization.cpython-312.pyc b/nnunetv2/preprocessing/normalization/__pycache__/map_channel_name_to_normalization.cpython-312.pyc index 830d6f5b23e60bbe7497583d35e3a5780feabc2a..f016e036eabe39bdebec55df0afa9a5971757012 100644 Binary files a/nnunetv2/preprocessing/normalization/__pycache__/map_channel_name_to_normalization.cpython-312.pyc and b/nnunetv2/preprocessing/normalization/__pycache__/map_channel_name_to_normalization.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/preprocessors/__pycache__/__init__.cpython-312.pyc b/nnunetv2/preprocessing/preprocessors/__pycache__/__init__.cpython-312.pyc index be0e5b143fc07a583386a60602b7996821140f92..c0fc9af80f595b9901bd67b06105a631836136bb 100644 Binary files a/nnunetv2/preprocessing/preprocessors/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/preprocessing/preprocessors/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/preprocessors/__pycache__/default_preprocessor.cpython-312.pyc b/nnunetv2/preprocessing/preprocessors/__pycache__/default_preprocessor.cpython-312.pyc index ea8c58dc893b75b355dba6eea349058f372c67b1..b7604510f8bcbd189af85f95ee7fdf07a75b161a 100644 Binary files a/nnunetv2/preprocessing/preprocessors/__pycache__/default_preprocessor.cpython-312.pyc and b/nnunetv2/preprocessing/preprocessors/__pycache__/default_preprocessor.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/resampling/__pycache__/__init__.cpython-312.pyc b/nnunetv2/preprocessing/resampling/__pycache__/__init__.cpython-312.pyc index eb00750b6baa78e42775d97da2925ee96436b481..5553889e7fa31e5c5060dedeabedc901b225b543 100644 Binary files a/nnunetv2/preprocessing/resampling/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/preprocessing/resampling/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/resampling/__pycache__/default_resampling.cpython-312.pyc b/nnunetv2/preprocessing/resampling/__pycache__/default_resampling.cpython-312.pyc index bc071adf38167a1f0c5a8df62d105fb2918596ea..44ab2ec3e45a01fad33c22dfac524be523c0ca33 100644 Binary files a/nnunetv2/preprocessing/resampling/__pycache__/default_resampling.cpython-312.pyc and b/nnunetv2/preprocessing/resampling/__pycache__/default_resampling.cpython-312.pyc differ diff --git a/nnunetv2/preprocessing/resampling/__pycache__/utils.cpython-312.pyc b/nnunetv2/preprocessing/resampling/__pycache__/utils.cpython-312.pyc index 8f728406fd5d995dee53e5d0c96ba2332c6d1e5d..1291f4269385e725e09aa9b0331b50ee53b8f105 100644 Binary files a/nnunetv2/preprocessing/resampling/__pycache__/utils.cpython-312.pyc and b/nnunetv2/preprocessing/resampling/__pycache__/utils.cpython-312.pyc differ diff --git a/nnunetv2/training/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/__pycache__/__init__.cpython-312.pyc index 87398299adace913fe77095cc7b26742209751d3..ed2c729495dcd771dfb33ade62636fee768a3ffa 100644 Binary files a/nnunetv2/training/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/data_augmentation/__pycache__/__init__.cpython-312.pyc index 82eef5cab73d4e19fc3f0af11946a086a31f1bef..f2b43c8128d74856da4456659050c8fad85612fd 100644 Binary files a/nnunetv2/training/data_augmentation/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/data_augmentation/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/__pycache__/compute_initial_patch_size.cpython-312.pyc b/nnunetv2/training/data_augmentation/__pycache__/compute_initial_patch_size.cpython-312.pyc index 944fe68aa60900291b0b91baa1306f71ba084bcb..fcebea85ce0ead82b52e30badbc8ea67ca311027 100644 Binary files a/nnunetv2/training/data_augmentation/__pycache__/compute_initial_patch_size.cpython-312.pyc and b/nnunetv2/training/data_augmentation/__pycache__/compute_initial_patch_size.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/__init__.cpython-312.pyc index 258b450eafc24ddd11efeaeac6f9ca6011bad848..b75992f7347883c5776ba94740f5d6c04b6c533d 100644 Binary files a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/cascade_transforms.cpython-312.pyc b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/cascade_transforms.cpython-312.pyc index 3bc827ddb60639fa91151bae25720445c6ac6f76..62caa1a56264a7dd6ce051310aa1c2d344b532f7 100644 Binary files a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/cascade_transforms.cpython-312.pyc and b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/cascade_transforms.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/deep_supervision_donwsampling.cpython-312.pyc b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/deep_supervision_donwsampling.cpython-312.pyc index f697d53b7ff0f7a62e98be1d6b91c52a15dfe44f..89c9487b42fdd00c6749bf6571178ca9d6557f91 100644 Binary files a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/deep_supervision_donwsampling.cpython-312.pyc and b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/deep_supervision_donwsampling.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/limited_length_multithreaded_augmenter.cpython-312.pyc b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/limited_length_multithreaded_augmenter.cpython-312.pyc index 3679c0befc540542103bb0b59e2ddac4c938da4d..e8615732fa9463455fd7f794443b85935b51118d 100644 Binary files a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/limited_length_multithreaded_augmenter.cpython-312.pyc and b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/limited_length_multithreaded_augmenter.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/masking.cpython-312.pyc b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/masking.cpython-312.pyc index 74714968699cf8cee9f1b90eb88e1b4732b00382..db8120db743623dda3f558152474602e71bf1eb6 100644 Binary files a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/masking.cpython-312.pyc and b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/masking.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/region_based_training.cpython-312.pyc b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/region_based_training.cpython-312.pyc index 5c86aeea3d217a0b741987d23d630de771873ddf..b326e0799f23c0eca7baba97396676082aede10e 100644 Binary files a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/region_based_training.cpython-312.pyc and b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/region_based_training.cpython-312.pyc differ diff --git a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/transforms_for_dummy_2d.cpython-312.pyc b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/transforms_for_dummy_2d.cpython-312.pyc index 03c11b7bc3501796e4d8bdfb86d24d5face049ba..a107182093785568dc5c0053a14aaee7789f995a 100644 Binary files a/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/transforms_for_dummy_2d.cpython-312.pyc and b/nnunetv2/training/data_augmentation/custom_transforms/__pycache__/transforms_for_dummy_2d.cpython-312.pyc differ diff --git a/nnunetv2/training/dataloading/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/dataloading/__pycache__/__init__.cpython-312.pyc index 615bd731e6b8705a115271d0f869c54519aee413..0b07db41c75ec1925898591398c0204b28a016c2 100644 Binary files a/nnunetv2/training/dataloading/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/dataloading/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/dataloading/__pycache__/base_data_loader.cpython-312.pyc b/nnunetv2/training/dataloading/__pycache__/base_data_loader.cpython-312.pyc index e2de673435ec26a2d6a447dd28797bbfe4dbe146..878e1853a5b0d5a6fe56112c238e310befef889a 100644 Binary files a/nnunetv2/training/dataloading/__pycache__/base_data_loader.cpython-312.pyc and b/nnunetv2/training/dataloading/__pycache__/base_data_loader.cpython-312.pyc differ diff --git a/nnunetv2/training/dataloading/__pycache__/data_loader_2d.cpython-312.pyc b/nnunetv2/training/dataloading/__pycache__/data_loader_2d.cpython-312.pyc index c54f781168309ef430b72be3d8879059e8117a71..979210509e13275ac8df1531c4ff0c7b8338d5d6 100644 Binary files a/nnunetv2/training/dataloading/__pycache__/data_loader_2d.cpython-312.pyc and b/nnunetv2/training/dataloading/__pycache__/data_loader_2d.cpython-312.pyc differ diff --git a/nnunetv2/training/dataloading/__pycache__/data_loader_3d.cpython-312.pyc b/nnunetv2/training/dataloading/__pycache__/data_loader_3d.cpython-312.pyc index d704651703872ef1da35b5db518ba0809cda5570..4b971373c5eab74701d2588613198c617c2f6cc0 100644 Binary files a/nnunetv2/training/dataloading/__pycache__/data_loader_3d.cpython-312.pyc and b/nnunetv2/training/dataloading/__pycache__/data_loader_3d.cpython-312.pyc differ diff --git a/nnunetv2/training/dataloading/__pycache__/nnunet_dataset.cpython-312.pyc b/nnunetv2/training/dataloading/__pycache__/nnunet_dataset.cpython-312.pyc index fedc357b625820619f9847336a0b97ef30f4c205..501b90e5cead562bcaf3624c62daf678d77509f8 100644 Binary files a/nnunetv2/training/dataloading/__pycache__/nnunet_dataset.cpython-312.pyc and b/nnunetv2/training/dataloading/__pycache__/nnunet_dataset.cpython-312.pyc differ diff --git a/nnunetv2/training/dataloading/__pycache__/utils.cpython-312.pyc b/nnunetv2/training/dataloading/__pycache__/utils.cpython-312.pyc index aa6cdcbf8b826be863c0a766883feb4eed20c7b7..ed820f779e2b2ccd58ddbce46d49d1241b9802a9 100644 Binary files a/nnunetv2/training/dataloading/__pycache__/utils.cpython-312.pyc and b/nnunetv2/training/dataloading/__pycache__/utils.cpython-312.pyc differ diff --git a/nnunetv2/training/logging/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/logging/__pycache__/__init__.cpython-312.pyc index 9f5cf332a5ee4e66c31f254079b490089611ec35..0a6d7accf75d9fcff1a317e08becf3533405418f 100644 Binary files a/nnunetv2/training/logging/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/logging/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/logging/__pycache__/nnunet_logger.cpython-312.pyc b/nnunetv2/training/logging/__pycache__/nnunet_logger.cpython-312.pyc index 5cde68eb7fae61aa9bf28832274a6151c7e9a56d..4e678e50804c264358d72b547ef5936e734cdec4 100644 Binary files a/nnunetv2/training/logging/__pycache__/nnunet_logger.cpython-312.pyc and b/nnunetv2/training/logging/__pycache__/nnunet_logger.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/__init__.cpython-312.pyc index 76ebd58d3808c17c248979dd81f7d319a28f6bf4..4281fb4258935f2cd4be4bd7bcb0df6ecb721bd9 100644 Binary files a/nnunetv2/training/loss/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/compound_losses.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/compound_losses.cpython-312.pyc index 620b9c2599a7493f0243b248a1ad32653e83830c..92a4865323e98274db291d3b5f27a2ff0f83fd37 100644 Binary files a/nnunetv2/training/loss/__pycache__/compound_losses.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/compound_losses.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/deep_supervision.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/deep_supervision.cpython-312.pyc index fbf7648f406c7a0c6e76803cfd4ded6408a89f29..81f65986468e8f90f9dd87d2a4085b92db3cad21 100644 Binary files a/nnunetv2/training/loss/__pycache__/deep_supervision.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/deep_supervision.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/dice.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/dice.cpython-312.pyc index bf2e821fffac316fdec418cd2a8effc3c8624d25..0a532a9921cfa1f82c20d6ed5eed8d91831cab24 100644 Binary files a/nnunetv2/training/loss/__pycache__/dice.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/dice.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/mae.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/mae.cpython-312.pyc index dc6726fa6416aca6c4d74e2f3e947086a892e887..8aa830d7023e322ec41f5a7d8c3075ae624aaee0 100644 Binary files a/nnunetv2/training/loss/__pycache__/mae.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/mae.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/mednet.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/mednet.cpython-312.pyc index 443d83fc00e0acd0b2ad8de9e3257446da8fec4a..843d419c349cc9a41df8c4f2f95fb979b2720d20 100644 Binary files a/nnunetv2/training/loss/__pycache__/mednet.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/mednet.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/mse.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/mse.cpython-312.pyc index 2f4f585ad7c388e73a2ce43a130ceb7bb47e79f5..2ca881a6230a62965479d64ecc0e7e4754d35f01 100644 Binary files a/nnunetv2/training/loss/__pycache__/mse.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/mse.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/perceptual.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/perceptual.cpython-312.pyc index 0d04c40f58c8b5027d07fa9b32a65d2ee760fbdd..0beeceb7bdd65b795e173de8b202b72031665f1d 100644 Binary files a/nnunetv2/training/loss/__pycache__/perceptual.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/perceptual.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/plain_conv_encoder.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/plain_conv_encoder.cpython-312.pyc index dc7026a074f5ca8e3fafd5728f0bed53826475a2..41714262cabecf114c00662ac13516eb259720d1 100644 Binary files a/nnunetv2/training/loss/__pycache__/plain_conv_encoder.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/plain_conv_encoder.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/robust_ce_loss.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/robust_ce_loss.cpython-312.pyc index 1f08dacb4093dc698ba7dc445df5b007f62d01b9..cc0486350f39ebc4ed9ce10b67b90df077df7318 100644 Binary files a/nnunetv2/training/loss/__pycache__/robust_ce_loss.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/robust_ce_loss.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/segairway.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/segairway.cpython-312.pyc index 346c02c0766ac06967f4e7f951dc47b17e8310cf..557697522fdf71b4bb63acd72f6dd0b29f601595 100644 Binary files a/nnunetv2/training/loss/__pycache__/segairway.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/segairway.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/unet.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/unet.cpython-312.pyc index f594c8895f878995842b182f87c423972a3cd40d..f9b068847433c1f3cf69b1fda4415fc55d11f24f 100644 Binary files a/nnunetv2/training/loss/__pycache__/unet.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/unet.cpython-312.pyc differ diff --git a/nnunetv2/training/loss/__pycache__/unet_decoder.cpython-312.pyc b/nnunetv2/training/loss/__pycache__/unet_decoder.cpython-312.pyc index 1f7b894498d2869b19b1404c8ee6c64a887afa8d..6c34a459df1b1098f271590f68fd322ad1681eb7 100644 Binary files a/nnunetv2/training/loss/__pycache__/unet_decoder.cpython-312.pyc and b/nnunetv2/training/loss/__pycache__/unet_decoder.cpython-312.pyc differ diff --git a/nnunetv2/training/lr_scheduler/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/lr_scheduler/__pycache__/__init__.cpython-312.pyc index b9397d2ccb5bdcc021d1160cfcd9f6cddf43e540..7113714cbaf687a80031ee5f2e428a1c346519ea 100644 Binary files a/nnunetv2/training/lr_scheduler/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/lr_scheduler/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/lr_scheduler/__pycache__/polylr.cpython-312.pyc b/nnunetv2/training/lr_scheduler/__pycache__/polylr.cpython-312.pyc index d18184edbf2a0a83f5b8d2cd8cb436da20f70788..aa12b7fb66385d7b7f2a163c4c24f6f234829826 100644 Binary files a/nnunetv2/training/lr_scheduler/__pycache__/polylr.cpython-312.pyc and b/nnunetv2/training/lr_scheduler/__pycache__/polylr.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/__pycache__/__init__.cpython-312.pyc index 5ed1ebe7d68c4806ee427a79587dfaf983b0dfd9..6a06e491cebfa5246f28eb0e9cf08712a3b0267d 100644 Binary files a/nnunetv2/training/nnUNetTrainer/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTSTrainer.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTSTrainer.cpython-312.pyc index 5174d70d88a0c4854544f12855e86b7aa9c3fe8a..03d55e212a1ee26e1a8415535f02aa5f7f239129 100644 Binary files a/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTSTrainer.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTSTrainer.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTrainer.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTrainer.cpython-312.pyc index adfc892862adf0ccebfeaba2095287207384ddc2..48e0e3b2b13748a3ea7ebe511072da37a5827b4a 100644 Binary files a/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTrainer.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTrainer.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTrainerMedNext.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTrainerMedNext.cpython-312.pyc index b8c294950e42996a539234201819469790dca701..763e9dc15ba4d2462679be6eb178855df87d49a6 100644 Binary files a/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTrainerMedNext.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/__pycache__/nnUNetTrainerMedNext.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/__pycache__/__init__.cpython-312.pyc index 842df870ccb6325d85ccad2cda93c78a851be899..12ac7fbfa677efc96430f94f44d857ed1df85848 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/__init__.cpython-312.pyc index 8cf029d7c3546e2105b2d3ada984b32726b3dde4..2d1ce73ca9751f1bda9ec7e80f3cf07d70215b4c 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/nnUNetTrainerBenchmark_5epochs.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/nnUNetTrainerBenchmark_5epochs.cpython-312.pyc index 3f608554b9a97901ba453725c04fcf6db466b37f..8c79e6b7cabbefe5cadef202ed4a2e90345c4f61 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/nnUNetTrainerBenchmark_5epochs.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/nnUNetTrainerBenchmark_5epochs.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/nnUNetTrainerBenchmark_5epochs_noDataLoading.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/nnUNetTrainerBenchmark_5epochs_noDataLoading.cpython-312.pyc index 09987c870071acd2b39a16116aa806f3ea38fdd6..f9b2a0590f5ba8e8ca7a6c303d4a158bb16a7657 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/nnUNetTrainerBenchmark_5epochs_noDataLoading.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/benchmarking/__pycache__/nnUNetTrainerBenchmark_5epochs_noDataLoading.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/__init__.cpython-312.pyc index f6a2a411b5efe2889f2c4558cef592c49351b2c1..3e2ff88ca69aa4d1c7c7603f6e3be05ccb1dec25 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerDA5.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerDA5.cpython-312.pyc index 639eccb48a2bfa65236c4ce657dba195984daf34..99704336bef10e1585a91c1abb95418d2029640f 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerDA5.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerDA5.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerDAOrd0.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerDAOrd0.cpython-312.pyc index 3a210228576205e5116848da8951ef52321e3b23..17318350ee03ac7375dda3c2789ac0ec79eea617 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerDAOrd0.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerDAOrd0.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerNoDA.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerNoDA.cpython-312.pyc index 2ba0d7ce60e28c75ad6ef892efafcd0e7bd0aeef..3c709942aefba63333192b775067e757fef4b9e4 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerNoDA.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerNoDA.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerNoMirroring.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerNoMirroring.cpython-312.pyc index 8b56dfb79b8b115ab08e415744a7133f9465d2b3..da5f8a1a8358216da16245d92ea60d4bbd50899e 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerNoMirroring.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/data_augmentation/__pycache__/nnUNetTrainerNoMirroring.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/__init__.cpython-312.pyc index 78c396baea6237f68c8431763f135cf9ccec71d7..ea456541d8b5bfa1e6561c868ee9e048e227203d 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerCELoss.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerCELoss.cpython-312.pyc index c8e69a4d418b9fb44218f82cf67a0af444f65228..06d2e84b774ddfecaf39a8ef77d4d3298022b00d 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerCELoss.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerCELoss.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerDiceLoss.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerDiceLoss.cpython-312.pyc index 64c66ea061e37c02a46718b22e95561ffd5e4755..83e223429d2135753ddc08f90fc56f39052bc43e 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerDiceLoss.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerDiceLoss.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerTopkLoss.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerTopkLoss.cpython-312.pyc index 70676051a10151578b5eadb48adc7f1e6be3b496..64dcd5b86b3aa0d076ececd48b406432602f56e3 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerTopkLoss.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/loss/__pycache__/nnUNetTrainerTopkLoss.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/lr_schedule/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/lr_schedule/__pycache__/__init__.cpython-312.pyc index 630bb63119d6a4fdf33ec13a5c47fc7df127722c..c471cee5ca457d55cd432951106e3cf2cb087666 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/lr_schedule/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/lr_schedule/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/lr_schedule/__pycache__/nnUNetTrainerCosAnneal.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/lr_schedule/__pycache__/nnUNetTrainerCosAnneal.cpython-312.pyc index a401740994a95c74bc99417d3338336a4c4376c8..fa963982e9226f3032e557480cd523d4b092fc7f 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/lr_schedule/__pycache__/nnUNetTrainerCosAnneal.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/lr_schedule/__pycache__/nnUNetTrainerCosAnneal.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/__init__.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/__init__.cpython-312.pyc index c6079b815cc425f95c7b5750959e164a93821379..86461b44b8056b57964b87d5e8d18730eab8127f 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT.cpython-312.pyc index a2e754207c4a8e9f4863482a7f4ded189227f41a..72ee5dd2858eb328320fdf381c659b7055449119 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_Imene8.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_Imene8.cpython-312.pyc index e42f0115c32daab2b710fd12005cac8594362230..26698f88fbcfb978f542ff7f01b5888e97d7b17b 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_Imene8.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_Imene8.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway.cpython-312.pyc index 3a20a889cde305e27ab400991ceb1f29036cf1be..5f7a282fd8c9255f4d8561c89b472a6926ab2327 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway2.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway2.cpython-312.pyc index d959d65fd32aa87ad09999a3d2c26f4fe2c42f73..0b6fe280b7c81c02f0c41aebe881ae6fcf3bf64b 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway2.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway2.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1.cpython-312.pyc index c797c39f7019b91433033f91f3a601f25b96d7a6..31ae93bbdb8843d80dbcacf210d82e8c4588a917 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_w5_up_trilinear.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_w5_up_trilinear.cpython-312.pyc index 58ae69fb21c3eead99dc57f9e94e06157e01ceeb..c0ddcb272d3022aaeb50ec9068be9bfc70ab9bbb 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_w5_up_trilinear.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_w5_up_trilinear.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_weight10.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_weight10.cpython-312.pyc index 578acdb404475c9d622a04575684a60bc48bd076..a3855e067e1d5233b790b6cd1cf3f7d7529704e3 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_weight10.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_weight10.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_weight5.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_weight5.cpython-312.pyc index 743ab65cf4e95e338dd51a869088de118dc24c7d..df5662045f621b410fffcd5123315696e965a3c3 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_weight5.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_L1_weight5.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_encoder.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_encoder.cpython-312.pyc index 63e68845ec5bc4343e8a3cfeb520aecc7b91dd88..770e7b2c90684394349ccd6328760930a4dbc523 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_encoder.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_encoder.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_tanh.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_tanh.cpython-312.pyc index 1a36f7d0fc8ef3b0a83e2e61232498d92bd63c8f..fe7fe87c33732338af0e8466bf4ea698f147975d 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_tanh.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_tanh.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_upsample_nearest.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_upsample_nearest.cpython-312.pyc index 2bae354072a030a99ed9036562b434e47dea6669..507dc21faf7cc41348911d92517eb67eff26092c 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_upsample_nearest.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_upsample_nearest.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_upsample_trilinear.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_upsample_trilinear.cpython-312.pyc index ab1078cf6c827bd305defc34f26f91a947f0287e..475d696e4dc06b68bd3a540078e9d939703e08de 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_upsample_trilinear.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_airway_upsample_trilinear.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_debug.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_debug.cpython-312.pyc index e501b5e84cc35e4a725427eb84ac784b69f7b129..eb64d2a6397035d078743dbb9daf5635358f51ff 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_debug.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_debug.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_airway.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_airway.cpython-312.pyc index e922bec56d95418ae945781afd1d98d55d4b30eb..76d883683dee97d00fcfbdeffe98957a4f559b1c 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_airway.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_airway.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_imene8.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_imene8.cpython-312.pyc index 1a0e7b0bc31529d24d1f3290b25d994a6e3e4432..b3cfc4d44ade250309c439d10041defe525e119c 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_imene8.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_imene8.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_totalseg.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_totalseg.cpython-312.pyc index 1a1d909dfe3252c45b04deaeccb7e0f54416eee3..ea7c7faf952173e2e08d191e0415c91e07351c25 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_totalseg.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_totalseg.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_totalseg2.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_totalseg2.cpython-312.pyc index 6ff5e3dd9420c49c4675a2d74531a4254eed6fb6..54fdc1215dfecadf13af762b016cdc6af3ff553d 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_totalseg2.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_finetunedL1_totalseg2.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_L1_weight5.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_L1_weight5.cpython-312.pyc index b24f784d3cecc57439bfdf740c03de86214a2a87..f31d46e8e6519838fd2b6267ab1da9a2f38bf507 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_L1_weight5.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_L1_weight5.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_trilinear.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_trilinear.cpython-312.pyc index f210d8d6076328b15c3b1d367376289f537130bc..677b0442e40729b1698cf79a9b71f89b1c2ab305 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_trilinear.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_trilinear.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_upsample_nearest.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_upsample_nearest.cpython-312.pyc index 527e966036ae235abb47d4ce3ef171ce20d77eac..d60616578f179d4a1c51a85253eebd858e05c1d8 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_upsample_nearest.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_upsample_nearest.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_upsample_trilinear.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_upsample_trilinear.cpython-312.pyc index 7faab19bbfce153e6188f043baaf578dfa880994..615d2bbbeaf0b5557cdb612e31a82bf8cec2037a 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_upsample_trilinear.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_imene8_upsample_trilinear.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mae.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mae.cpython-312.pyc index 174799657cf462ab496cc4fb173577a6e1ad458c..df33d2478aa3fe6e90504de3a4bd2d5c94546560 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mae.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mae.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mae_augments.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mae_augments.cpython-312.pyc index 496783dd5ceb4ad79b4161eaf7fd1eec9a66acc0..4e6b1af4eecff43477ff7424e3f7f3ea3a0667bd 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mae_augments.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mae_augments.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mednet_upsample_trilinear.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mednet_upsample_trilinear.cpython-312.pyc index ef2226a44fd1969ee62a9b20c390c73e0fcac890..8ea697fd8c71ff6c449a1d6b5e280bf015d2c276 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mednet_upsample_trilinear.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_mednet_upsample_trilinear.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg.cpython-312.pyc index 11c0f00614353b87210d61adfef5b70b678b0c95..e5010a7e312486d915db0e3c52cd9d03378440b9 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg2.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg2.cpython-312.pyc index 58a68c570f1d12c5b034ab6f5f3a7dac44e747a8..b38765b4fb35197d3677378219a3f88381e26692 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg2.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg2.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg_L1_weight3.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg_L1_weight3.cpython-312.pyc index c1223b1ecb691cb190043f7bad593357d458cd56..ba2fbc8cb7c9080783f262722609fa7dc482fae0 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg_L1_weight3.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg_L1_weight3.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg_upsample_trilinear.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg_upsample_trilinear.cpython-312.pyc index 2f98dba9ab0a3693051b6749f5e241f7f65c7286..080b62754d927d22756b875a6ad8b471e1597681 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg_upsample_trilinear.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_totalseg_upsample_trilinear.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_zz_loss_masked.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_zz_loss_masked.cpython-312.pyc index cc7c85d6b2a6d6a04665f8f101e573503830a3a8..6347f3743789d4283ffe397102dc1e508dbd3db8 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_zz_loss_masked.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_zz_loss_masked.cpython-312.pyc differ diff --git a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_zz_loss_masked_perception.cpython-312.pyc b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_zz_loss_masked_perception.cpython-312.pyc index 6499ce1606464050656c7271e2b52343939fa927..16fe8236476a7b5d54291a35b9c0cdb11be26f66 100644 Binary files a/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_zz_loss_masked_perception.cpython-312.pyc and b/nnunetv2/training/nnUNetTrainer/variants/network_architecture/__pycache__/nnUNetTrainerMRCT_zz_loss_masked_perception.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/__init__.cpython-312.pyc b/nnunetv2/utilities/__pycache__/__init__.cpython-312.pyc index ec0880e47a9ceea826eb268cf6dc5efc2936f6be..af463d0b7da91325c608308ff8627cd666068b90 100644 Binary files a/nnunetv2/utilities/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/collate_outputs.cpython-312.pyc b/nnunetv2/utilities/__pycache__/collate_outputs.cpython-312.pyc index 42571a501744bbd6ade34d186f88030a363fbd7f..23ec9374171b694b23eb9f9789850e101a35045e 100644 Binary files a/nnunetv2/utilities/__pycache__/collate_outputs.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/collate_outputs.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/crossval_split.cpython-312.pyc b/nnunetv2/utilities/__pycache__/crossval_split.cpython-312.pyc index e8ffe74f25bc4e7b0c920146232c1fe49cc618bd..4b22308a224d6bcadba4703714d6a18300813c4d 100644 Binary files a/nnunetv2/utilities/__pycache__/crossval_split.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/crossval_split.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/dataset_name_id_conversion.cpython-312.pyc b/nnunetv2/utilities/__pycache__/dataset_name_id_conversion.cpython-312.pyc index 7db188308ae93502843ad56a0b0b73e48087d5e2..20e9c154f1d24484b7030962ac6cb7da924ae1ef 100644 Binary files a/nnunetv2/utilities/__pycache__/dataset_name_id_conversion.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/dataset_name_id_conversion.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/ddp_allgather.cpython-312.pyc b/nnunetv2/utilities/__pycache__/ddp_allgather.cpython-312.pyc index 2a738f9b9d890aedb00efc5ba03534eed480b0a4..c7421d8937fe1a0964659b5b8395361f84f1b626 100644 Binary files a/nnunetv2/utilities/__pycache__/ddp_allgather.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/ddp_allgather.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/default_n_proc_DA.cpython-312.pyc b/nnunetv2/utilities/__pycache__/default_n_proc_DA.cpython-312.pyc index 33cefe10c1387837b99f7068142abb883f10e96f..0ddd5da43c94b2ce81fc9946beeba0c994634182 100644 Binary files a/nnunetv2/utilities/__pycache__/default_n_proc_DA.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/default_n_proc_DA.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/file_path_utilities.cpython-312.pyc b/nnunetv2/utilities/__pycache__/file_path_utilities.cpython-312.pyc index e615f37dbd17ad8674727cc4b034e60871e655e9..8414205217340f52c2f79c89c5073333905826bd 100644 Binary files a/nnunetv2/utilities/__pycache__/file_path_utilities.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/file_path_utilities.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/find_class_by_name.cpython-312.pyc b/nnunetv2/utilities/__pycache__/find_class_by_name.cpython-312.pyc index e45bebee93d2a5e63d78a6676d80b3740be80cb6..4ba329283759ca259814843aa3c92be799e8e572 100644 Binary files a/nnunetv2/utilities/__pycache__/find_class_by_name.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/find_class_by_name.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/get_network_from_plans.cpython-312.pyc b/nnunetv2/utilities/__pycache__/get_network_from_plans.cpython-312.pyc index b2ccfe404c1d83112dbfd03538b3a177356701b6..2d8b84279b75d427e22c055b2749dacb9619f149 100644 Binary files a/nnunetv2/utilities/__pycache__/get_network_from_plans.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/get_network_from_plans.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/helpers.cpython-312.pyc b/nnunetv2/utilities/__pycache__/helpers.cpython-312.pyc index a5cddd0bd5b6ae899a94996c16e45b0d2466aadc..11b31999119e42a224da694a20dbc5107d943dd8 100644 Binary files a/nnunetv2/utilities/__pycache__/helpers.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/helpers.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/json_export.cpython-312.pyc b/nnunetv2/utilities/__pycache__/json_export.cpython-312.pyc index d7ae020e433aa01ce74aeece8f28d6b4258d164c..e26c912c22c60f5dc1cb97a4caf0384dc8265c4a 100644 Binary files a/nnunetv2/utilities/__pycache__/json_export.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/json_export.cpython-312.pyc differ diff --git a/nnunetv2/utilities/__pycache__/utils.cpython-312.pyc b/nnunetv2/utilities/__pycache__/utils.cpython-312.pyc index baf352df624a91841032d24edef0438170ce2189..c01bceb67d1de712f90420c47a238b00b8cec60b 100644 Binary files a/nnunetv2/utilities/__pycache__/utils.cpython-312.pyc and b/nnunetv2/utilities/__pycache__/utils.cpython-312.pyc differ diff --git a/nnunetv2/utilities/label_handling/__pycache__/__init__.cpython-312.pyc b/nnunetv2/utilities/label_handling/__pycache__/__init__.cpython-312.pyc index b1594002e3c4f3d4901f9a3bdf07e243776a5224..7bb52a314450202007a8c7b7bc515ce8fc9544d1 100644 Binary files a/nnunetv2/utilities/label_handling/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/utilities/label_handling/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/utilities/label_handling/__pycache__/label_handling.cpython-312.pyc b/nnunetv2/utilities/label_handling/__pycache__/label_handling.cpython-312.pyc index 27fc6c1caa7e7a2fb277616b9935ed3e3438ef86..64d7dbc39913045499ec62cf0111e87e93954a76 100644 Binary files a/nnunetv2/utilities/label_handling/__pycache__/label_handling.cpython-312.pyc and b/nnunetv2/utilities/label_handling/__pycache__/label_handling.cpython-312.pyc differ diff --git a/nnunetv2/utilities/plans_handling/__pycache__/__init__.cpython-312.pyc b/nnunetv2/utilities/plans_handling/__pycache__/__init__.cpython-312.pyc index 35e49d34db03eaa3a45bc73e78254fd2a7c32488..e34d8d5c293ff96059f5978b6dee1ef6bb3bfdbf 100644 Binary files a/nnunetv2/utilities/plans_handling/__pycache__/__init__.cpython-312.pyc and b/nnunetv2/utilities/plans_handling/__pycache__/__init__.cpython-312.pyc differ diff --git a/nnunetv2/utilities/plans_handling/__pycache__/plans_handler.cpython-312.pyc b/nnunetv2/utilities/plans_handling/__pycache__/plans_handler.cpython-312.pyc index 26c1c2a1b1e6d5f2fc6fe030dfa2c08ca54e3383..8a32843ff7ba3b45e4c2866e96e28cd82dd1bf9f 100644 Binary files a/nnunetv2/utilities/plans_handling/__pycache__/plans_handler.cpython-312.pyc and b/nnunetv2/utilities/plans_handling/__pycache__/plans_handler.cpython-312.pyc differ diff --git a/process.py b/process.py index fa31fd61412b5d8595793eff471bc7a532af741f..d02986f5efddf9d749e784cf40e8509eabb1abef 100644 --- a/process.py +++ b/process.py @@ -30,7 +30,7 @@ force_cpu = os.getenv("FORCE_CPU", "0") == "1" device = torch.device("cuda:0" if torch.cuda.is_available() and not force_cpu else "cpu") -class SynthradAlgorithm(BaseSynthradAlgorithm): +class SynthradAlgorithm2(BaseSynthradAlgorithm): """ This class implements a simple synthetic CT generation algorithm that segments all values greater than 2 in the input image. diff --git a/process_1.py b/process_1.py new file mode 100644 index 0000000000000000000000000000000000000000..a73c79164074d576860e57f17c22328c94079ae6 --- /dev/null +++ b/process_1.py @@ -0,0 +1,152 @@ +import os +# os.environ["nnUNet_raw"] = "/home/head_neck/algorithm-template_2/nnunet_raw" +# os.environ["nnUNet_preprocessed"] = "/home/head_neck/algorithm-template_2/nnunet_preprocessed" +# os.environ["nnUNet_results"] = "/home/head_neck/algorithm-template/nnunet_results_task_1" +os.environ["nnUNet_raw"] = "./nnunet_raw" +os.environ["nnUNet_preprocessed"] = "./nnunet_preprocessed" +# os.environ["nnUNet_results"] = "./nnunet_results" +from typing import Dict +import tempfile +import subprocess +import SimpleITK as sitk +from nnunetv2.inference.predict_from_raw_data import nnUNetPredictor +from batchgenerators.utilities.file_and_folder_operations import load_json, join, isfile, maybe_mkdir_p, isdir, subdirs, \ + save_json +# import torch +import numpy as np + +from base_algorithm import BaseSynthradAlgorithm +from revert_normalisation import get_ct_normalisation_values, revert_normalisation_single_modified + +import torch +import shutil + +import os + +os.environ["OPENBLAS_NUM_THREADS"] = "1" +device = torch.device("cuda:0" if torch.cuda.is_available() and not force_cpu else "cpu") + + +force_cpu = os.getenv("FORCE_CPU", "0") == "1" +class SynthradAlgorithm1(BaseSynthradAlgorithm): + """ + This class implements a simple synthetic CT generation algorithm that segments all values greater than 2 in the input image. + + Author: Suraj Pai (b.pai@maastrichtuniversity.nl) + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def predict(self, input_dict: Dict[str, sitk.Image]) -> sitk.Image: + assert list(input_dict.keys()) == ["image", "mask", "region"] + + region = input_dict["region"] + mr_sitk = input_dict["image"] + mask_sitk = input_dict["mask"] + + mr_np = sitk.GetArrayFromImage(mr_sitk).astype("float32") + mask_np = sitk.GetArrayFromImage(mask_sitk).astype("float32") + + mr_np[mask_np == 0] = 0 + + preprocessed_mr_sitk = sitk.GetImageFromArray(mr_np) + preprocessed_mr_sitk.CopyInformation(mr_sitk) + + if region == "Head and Neck": + dataset_name = "Dataset262" + result_folder = "nnUNetTrainerMRCT_loss_masked_perception_masked__nnUNetResEncUNetLPlans__3d_fullres" + plans_path = "./262_gt_nnUNetResEncUNetLPlans.json" + if region == "Abdomen": + dataset_name = "Dataset260" + result_folder = "nnUNetTrainerMRCT_loss_masked_perception_masked__nnUNetResEncUNetLPlans__3d_fullres" + plans_path = "./260_gt_nnUNetResEncUNetLPlans.json" + if region == "Thorax": + dataset_name = "Dataset264" + result_folder = "nnUNetTrainerMRCT_loss_masked_perception_masked__nnUNetResEncUNetLPlans__3d_fullres" + plans_path = "./264_gt_nnUNetResEncUNetLPlans.json" + + + + # predictor = nnUNetPredictor( + # tile_step_size=0.5, + # use_gaussian=True, + # use_mirroring=True, + # perform_everything_on_device=True, + # device=torch.device('cuda', 0), + # verbose=True, + # verbose_preprocessing=True, + # allow_tqdm=True + # ) + predictor = nnUNetPredictor( + tile_step_size=0.50, + use_gaussian=True, + use_mirroring=False, + perform_everything_on_device=(device.type == "cuda"), + device=device, + verbose=True, + ) + predictor.initialize_from_trained_model_folder( + join(os.environ["nnUNet_results"], f'{dataset_name}/{result_folder}'), + #use_folds=(0, 1, 2, 3, 4), + use_folds=(0, ), + checkpoint_name='checkpoint_final.pth', + ) + + sitk_spacing = mr_sitk.GetSpacing() + sitk_origin = mr_sitk.GetOrigin() + sitk_dir = mr_sitk.GetDirection() + + props = { + 'sitk_stuff': { + 'spacing': tuple(sitk_spacing), + 'origin': tuple(sitk_origin), + 'direction': tuple(sitk_dir), + }, + 'spacing': [sitk_spacing[2], sitk_spacing[1], sitk_spacing[0]] + } + + img = sitk.GetArrayFromImage(mr_sitk).astype(np.float32) + img = np.expand_dims(img, 0) + ret = predictor.predict_single_npy_array(img, props, None, 'TRUNCATED', False) + + pred_path = "./TRUNCATED.nii.gz" + pred_sitk = sitk.ReadImage(pred_path) + + ct_mean, ct_std = get_ct_normalisation_values(plans_path) + mask_sitk = sitk.Cast(mask_sitk, sitk.sitkUInt8) + + pred_sitk = revert_normalisation_single_modified(pred_sitk, ct_mean, ct_std, mask_sitk=mask_sitk) + os.remove(pred_path) + shutil.rmtree("./imagesTs", ignore_errors=True) + shutil.rmtree("./predictions", ignore_errors=True) + return pred_sitk + +# if __name__ == '__main__': + +# # Run the algorithm on the default input and output paths specified in BaseSynthradAlgorithm. +# SynthradAlgorithm().process() + +# if __name__ == '__main__': +# # # test Brain +# # #start_time = time.time() +# # # img_s_path = '//datasets/work/hb-synthrad2023/source/raw_data/Task1/brain/1BA001/mr.mha' +# # # img_m_path = '//datasets/work/hb-synthrad2023/source/raw_data/Task1/brain/1BA001/mask.mha' +# # # img_fakeB_path = '//datasets/work/hb-synthrad2023/work/bw_workplace/output/task1_brain/p2p3D/ensemble_t1_brain_final_e2/test_predictions/1BA001/ct_fakeB.mha' +# # # region = 'Head and Neck' + +# # # test Pelvis +# img_s_path = '/home/head_neck/algorithm-template_2/task2/2ABA033_0000.mha' +# img_m_path = '/home/head_neck/algorithm-template_2/task2/2ABA033_mask.mha' +# # #img_fakeB_path = '//datasets/work/hb-synthrad2023/work/bw_workplace/output/task1_pelvis/p2p3D/exp6_data_7_size_256_256_56_batch_3_lr_0.0002_aug3d_fold0_resumed_multiscale_2dsample_5/epoch_best/epoch75/test_predictions/1PA005/ct_fakeB.mha' +# region = 'Abdomen' + + +# # start test +# input_dict = { +# "image": sitk.ReadImage(img_s_path), +# "mask": sitk.ReadImage(img_m_path), +# "region": region +# } +# algorithm = SynthradAlgorithm() +# img_t = algorithm.predict(input_dict) \ No newline at end of file