├── .DS_Store
├── README.md
├── nnUNet_LICENSE
├── nnunet.egg-info
├── PKG-INFO
├── SOURCES.txt
├── dependency_links.txt
├── entry_points.txt
├── requires.txt
└── top_level.txt
├── nnunet
├── .DS_Store
├── .idea
│ ├── .gitignore
│ ├── inspectionProfiles
│ │ ├── Project_Default.xml
│ │ └── profiles_settings.xml
│ ├── misc.xml
│ ├── modules.xml
│ ├── nnunet.iml
│ └── vcs.xml
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-38.pyc
│ ├── configuration.cpython-38.pyc
│ └── paths.cpython-38.pyc
├── configuration.py
├── dataset_conversion
│ ├── Task017_BeyondCranialVaultAbdominalOrganSegmentation.py
│ ├── Task024_Promise2012.py
│ ├── Task027_AutomaticCardiacDetectionChallenge.py
│ ├── Task029_LiverTumorSegmentationChallenge.py
│ ├── Task032_BraTS_2018.py
│ ├── Task035_ISBI_MSLesionSegmentationChallenge.py
│ ├── Task037_038_Chaos_Challenge.py
│ ├── Task040_KiTS.py
│ ├── Task043_BraTS_2019.py
│ ├── Task055_SegTHOR.py
│ ├── Task056_VerSe2019.py
│ ├── Task056_Verse_normalize_orientation.py
│ ├── Task058_ISBI_EM_SEG.py
│ ├── Task059_EPFL_EM_MITO_SEG.py
│ ├── Task061_CREMI.py
│ ├── Task062_NIHPancreas.py
│ ├── Task064_KiTS_labelsFixed.py
│ ├── Task065_KiTS_NicksLabels.py
│ ├── Task069_CovidSeg.py
│ ├── Task075_Fluo_C3DH_A549_ManAndSim.py
│ ├── Task076_Fluo_N3DH_SIM.py
│ ├── Task082_BraTS_2020.py
│ ├── Task083_VerSe2020.py
│ ├── Task089_Fluo-N2DH-SIM.py
│ ├── Task114_heart_MNMs.py
│ ├── Task115_COVIDSegChallenge.py
│ ├── Task120_Massachusetts_RoadSegm.py
│ ├── Task135_KiTS2021.py
│ ├── Task154_RibFrac_multi_label.py
│ ├── Task155_RibFrac_binary.py
│ ├── Task156_RibSeg.py
│ ├── Task159_MyoPS2020.py
│ ├── __init__.py
│ └── utils.py
├── evaluation
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── evaluator.cpython-38.pyc
│ │ ├── metrics.cpython-38.pyc
│ │ └── region_based_evaluation.cpython-38.pyc
│ ├── add_dummy_task_with_mean_over_all_tasks.py
│ ├── add_mean_dice_to_json.py
│ ├── collect_results_files.py
│ ├── evaluator.py
│ ├── metrics.py
│ ├── model_selection
│ │ ├── __init__.py
│ │ ├── collect_all_fold0_results_and_summarize_in_one_csv.py
│ │ ├── ensemble.py
│ │ ├── figure_out_what_to_submit.py
│ │ ├── rank_candidates.py
│ │ ├── rank_candidates_StructSeg.py
│ │ ├── rank_candidates_cascade.py
│ │ ├── summarize_results_in_one_json.py
│ │ └── summarize_results_with_plans.py
│ ├── region_based_evaluation.py
│ └── surface_dice.py
├── experiment_planning
│ ├── .DS_Store
│ ├── DatasetAnalyzer.py
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── DatasetAnalyzer.cpython-38.pyc
│ │ ├── __init__.cpython-38.pyc
│ │ ├── change_batch_size.cpython-38.pyc
│ │ ├── common_utils.cpython-38.pyc
│ │ ├── experiment_planner_baseline_2DUNet.cpython-38.pyc
│ │ ├── experiment_planner_baseline_2DUNet_v21.cpython-38.pyc
│ │ ├── experiment_planner_baseline_3DUNet.cpython-38.pyc
│ │ ├── experiment_planner_baseline_3DUNet_v21.cpython-38.pyc
│ │ ├── nnUNet_convert_decathlon_task.cpython-38.pyc
│ │ ├── nnUNet_plan_and_preprocess.cpython-38.pyc
│ │ ├── summarize_plans.cpython-38.pyc
│ │ └── utils.cpython-38.pyc
│ ├── alternative_experiment_planning
│ │ ├── .DS_Store
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ ├── experiment_planner_Attention_3DUNet_v21.cpython-38.pyc
│ │ │ ├── experiment_planner_SingleAttention_3DUNet_v21.cpython-38.pyc
│ │ │ ├── experiment_planner_SpatialSingleAttention_3DUNet_v21.cpython-38.pyc
│ │ │ ├── experiment_planner_baseline_3DUNet_v21_11GB.cpython-38.pyc
│ │ │ ├── experiment_planner_baseline_3DUNet_v21_16GB.cpython-38.pyc
│ │ │ ├── experiment_planner_baseline_3DUNet_v21_32GB.cpython-38.pyc
│ │ │ ├── experiment_planner_baseline_3DUNet_v21_3convperstage.cpython-38.pyc
│ │ │ ├── experiment_planner_baseline_3DUNet_v22.cpython-38.pyc
│ │ │ ├── experiment_planner_baseline_3DUNet_v23.cpython-38.pyc
│ │ │ ├── experiment_planner_dense3DUNet_v21.cpython-38.pyc
│ │ │ ├── experiment_planner_generic_3DUNet_v21.cpython-38.pyc
│ │ │ ├── experiment_planner_inception3DUNet_v21.cpython-38.pyc
│ │ │ ├── experiment_planner_pretrained.cpython-38.pyc
│ │ │ └── experiment_planner_residual3DUNet_v21.cpython-38.pyc
│ │ ├── experiment_planner_ChannelSpatialAttention_3DUNet_v21.py
│ │ ├── experiment_planner_SpatialMultiAttention_3DUNet_v21.py
│ │ ├── experiment_planner_SpatialSingleAttention_3DUNet_v21.py
│ │ ├── experiment_planner_baseline_3DUNet_v21_11GB.py
│ │ ├── experiment_planner_baseline_3DUNet_v21_16GB.py
│ │ ├── experiment_planner_baseline_3DUNet_v21_32GB.py
│ │ ├── experiment_planner_baseline_3DUNet_v21_3convperstage.py
│ │ ├── experiment_planner_baseline_3DUNet_v22.py
│ │ ├── experiment_planner_baseline_3DUNet_v23.py
│ │ ├── experiment_planner_dense3DUNet_v21.py
│ │ ├── experiment_planner_generic_3DUNet_v21.py
│ │ ├── experiment_planner_inception3DUNet_v21.py
│ │ ├── experiment_planner_pretrained.py
│ │ ├── experiment_planner_residual3DUNet_v21.py
│ │ ├── experiment_planner_residual_3DUNet_v21.py
│ │ ├── experiment_planner_residualattention3DUNet_v21.py
│ │ ├── normalization
│ │ │ ├── __init__.py
│ │ │ ├── experiment_planner_2DUNet_v21_RGB_scaleto_0_1.py
│ │ │ ├── experiment_planner_3DUNet_CT2.py
│ │ │ └── experiment_planner_3DUNet_nonCT.py
│ │ ├── patch_size
│ │ │ ├── __init__.py
│ │ │ ├── experiment_planner_3DUNet_isotropic_in_mm.py
│ │ │ └── experiment_planner_3DUNet_isotropic_in_voxels.py
│ │ ├── pooling_and_convs
│ │ │ ├── __init__.py
│ │ │ ├── experiment_planner_baseline_3DUNet_allConv3x3.py
│ │ │ └── experiment_planner_baseline_3DUNet_poolBasedOnSpacing.py
│ │ ├── readme.md
│ │ └── target_spacing
│ │ │ ├── __init__.py
│ │ │ ├── experiment_planner_baseline_3DUNet_targetSpacingForAnisoAxis.py
│ │ │ ├── experiment_planner_baseline_3DUNet_v21_customTargetSpacing_2x2x2.py
│ │ │ └── experiment_planner_baseline_3DUNet_v21_noResampling.py
│ ├── change_batch_size.py
│ ├── common_utils.py
│ ├── experiment_planner_baseline_2DUNet.py
│ ├── experiment_planner_baseline_2DUNet_v21.py
│ ├── experiment_planner_baseline_3DUNet.py
│ ├── experiment_planner_baseline_3DUNet_v21.py
│ ├── nnUNet_convert_decathlon_task.py
│ ├── nnUNet_plan_and_preprocess.py
│ ├── old
│ │ ├── __init__.py
│ │ └── old_plan_and_preprocess_task.py
│ ├── summarize_plans.py
│ └── utils.py
├── inference
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── ensemble_predictions.cpython-38.pyc
│ │ ├── predict.cpython-38.pyc
│ │ ├── predict_simple.cpython-38.pyc
│ │ └── segmentation_export.cpython-38.pyc
│ ├── change_trainer.py
│ ├── ensemble_predictions.py
│ ├── predict.py
│ ├── predict_simple.py
│ ├── pretrained_models
│ │ ├── __init__.py
│ │ ├── collect_pretrained_models.py
│ │ └── download_pretrained_model.py
│ └── segmentation_export.py
├── network_architecture
│ ├── .DS_Store
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── generic_UNet.cpython-38.pyc
│ │ ├── generic_UNet_DP.cpython-38.pyc
│ │ ├── generic_modular_UNet.cpython-38.pyc
│ │ ├── generic_modular_custom_UNet.cpython-38.pyc
│ │ ├── generic_modular_residual_UNet.cpython-38.pyc
│ │ ├── initialization.cpython-38.pyc
│ │ └── neural_network.cpython-38.pyc
│ ├── custom_modules
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ ├── conv_blocks.cpython-38.pyc
│ │ │ ├── feature_response_normalization.cpython-38.pyc
│ │ │ ├── helperModules.cpython-38.pyc
│ │ │ └── mish.cpython-38.pyc
│ │ ├── conv_blocks.py
│ │ ├── feature_response_normalization.py
│ │ ├── helperModules.py
│ │ └── mish.py
│ ├── generic_UNet.py
│ ├── generic_UNet_DP.py
│ ├── generic_modular_UNet.py
│ ├── generic_modular_custom_UNet.py
│ ├── generic_modular_preact_residual_UNet.py
│ ├── generic_modular_residual_UNet.py
│ ├── initialization.py
│ └── neural_network.py
├── paths.py
├── postprocessing
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── connected_components.cpython-38.pyc
│ │ └── consolidate_postprocessing.cpython-38.pyc
│ ├── connected_components.py
│ ├── consolidate_all_for_paper.py
│ ├── consolidate_postprocessing.py
│ └── consolidate_postprocessing_simple.py
├── preprocessing
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── cropping.cpython-38.pyc
│ │ ├── preprocessing.cpython-38.pyc
│ │ └── sanity_checks.cpython-38.pyc
│ ├── cropping.py
│ ├── custom_preprocessors
│ │ ├── __init__.py
│ │ └── preprocessor_scale_RGB_to_0_1.py
│ ├── preprocessing.py
│ └── sanity_checks.py
├── run
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── default_configuration.cpython-38.pyc
│ │ ├── load_pretrained_weights.cpython-38.pyc
│ │ └── run_training.cpython-38.pyc
│ ├── default_configuration.py
│ ├── load_pretrained_weights.py
│ ├── run_training.py
│ ├── run_training_DDP.py
│ └── run_training_DP.py
├── training
│ ├── .DS_Store
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ └── model_restore.cpython-38.pyc
│ ├── cascade_stuff
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ └── predict_next_stage.cpython-38.pyc
│ │ └── predict_next_stage.py
│ ├── data_augmentation
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ ├── custom_transforms.cpython-38.pyc
│ │ │ ├── data_augmentation_insaneDA.cpython-38.pyc
│ │ │ ├── data_augmentation_insaneDA2.cpython-38.pyc
│ │ │ ├── data_augmentation_moreDA.cpython-38.pyc
│ │ │ ├── data_augmentation_noDA.cpython-38.pyc
│ │ │ ├── default_data_augmentation.cpython-38.pyc
│ │ │ ├── downsampling.cpython-38.pyc
│ │ │ └── pyramid_augmentations.cpython-38.pyc
│ │ ├── custom_transforms.py
│ │ ├── data_augmentation_insaneDA.py
│ │ ├── data_augmentation_insaneDA2.py
│ │ ├── data_augmentation_moreDA.py
│ │ ├── data_augmentation_noDA.py
│ │ ├── default_data_augmentation.py
│ │ ├── downsampling.py
│ │ └── pyramid_augmentations.py
│ ├── dataloading
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ └── dataset_loading.cpython-38.pyc
│ │ └── dataset_loading.py
│ ├── learning_rate
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ └── poly_lr.cpython-38.pyc
│ │ └── poly_lr.py
│ ├── loss_functions
│ │ ├── TopK_loss.py
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── TopK_loss.cpython-38.pyc
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ ├── crossentropy.cpython-38.pyc
│ │ │ ├── deep_supervision.cpython-38.pyc
│ │ │ └── dice_loss.cpython-38.pyc
│ │ ├── crossentropy.py
│ │ ├── deep_supervision.py
│ │ ├── dice_loss.py
│ │ └── focal_loss.py
│ ├── model_restore.py
│ ├── network_training
│ │ ├── .DS_Store
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ ├── network_trainer.cpython-38.pyc
│ │ │ ├── nnUNetTrainer.cpython-38.pyc
│ │ │ ├── nnUNetTrainerCascadeFullRes.cpython-38.pyc
│ │ │ ├── nnUNetTrainerV2.cpython-38.pyc
│ │ │ ├── nnUNetTrainerV2_CascadeFullRes.cpython-38.pyc
│ │ │ ├── nnUNetTrainerV2_DDP.cpython-38.pyc
│ │ │ ├── nnUNetTrainerV2_DP.cpython-38.pyc
│ │ │ └── nnUNetTrainerV2_fp32.cpython-38.pyc
│ │ ├── competitions_with_custom_Trainers
│ │ │ ├── BraTS2020
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── nnUNetTrainerV2BraTSRegions.cpython-38.pyc
│ │ │ │ │ └── nnUNetTrainerV2BraTSRegions_moreDA.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2BraTSRegions.py
│ │ │ │ └── nnUNetTrainerV2BraTSRegions_moreDA.py
│ │ │ ├── MMS
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ └── nnUNetTrainerV2_MMS.cpython-38.pyc
│ │ │ │ └── nnUNetTrainerV2_MMS.py
│ │ │ ├── __init__.py
│ │ │ └── __pycache__
│ │ │ │ └── __init__.cpython-38.pyc
│ │ ├── network_trainer.py
│ │ ├── nnUNetTrainer.py
│ │ ├── nnUNetTrainerCascadeFullRes.py
│ │ ├── nnUNetTrainerV2.py
│ │ ├── nnUNetTrainerV2_CascadeFullRes.py
│ │ ├── nnUNetTrainerV2_DDP.py
│ │ ├── nnUNetTrainerV2_DP.py
│ │ ├── nnUNetTrainerV2_fp32.py
│ │ └── nnUNet_variants
│ │ │ ├── .DS_Store
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ ├── nnUNetTrainerCE.cpython-38.pyc
│ │ │ └── nnUNetTrainerNoDA.cpython-38.pyc
│ │ │ ├── architectural_variants
│ │ │ ├── .DS_Store
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_3ConvPerStage.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_3ConvPerStage_samefilters.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_BN.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_DenseUNet.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_FRN.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_GN.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_GeLU.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_GenericAttentionUNet.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_GenericSingleAttentionUNet.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_GenericSpatialSingleAttentionUNet.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_GenericUNet.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_GenericUNet_noDeepSupervision.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_InceptionUNet.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_LReLU_slope_2en1.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_Mish.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_NoNormalization.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_NoNormalization_lr1en3.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_ReLU.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_ReLU_biasInSegOutput.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_ReLU_convReLUIN.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_ResencUNet.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_ResencUNet_DA3.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_ResencUNet_DA3_BN.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_ResidualAttentionUNet.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_ResidualUNet.cpython-38.pyc
│ │ │ │ └── nnUNetTrainerV2_noDeepSupervision.cpython-38.pyc
│ │ │ ├── nnUNetTrainerV2_3ConvPerStage.py
│ │ │ ├── nnUNetTrainerV2_3ConvPerStage_samefilters.py
│ │ │ ├── nnUNetTrainerV2_BN.py
│ │ │ ├── nnUNetTrainerV2_DenseUNet.py
│ │ │ ├── nnUNetTrainerV2_FRN.py
│ │ │ ├── nnUNetTrainerV2_GN.py
│ │ │ ├── nnUNetTrainerV2_GeLU.py
│ │ │ ├── nnUNetTrainerV2_GenericChannelSpatialAttentionUNet.py
│ │ │ ├── nnUNetTrainerV2_GenericSpatialMultiAttentionUNet.py
│ │ │ ├── nnUNetTrainerV2_GenericSpatialSingleAttentionUNet.py
│ │ │ ├── nnUNetTrainerV2_GenericUNet.py
│ │ │ ├── nnUNetTrainerV2_GenericUNet_noDeepSupervision.py
│ │ │ ├── nnUNetTrainerV2_InceptionUNet.py
│ │ │ ├── nnUNetTrainerV2_LReLU_slope_2en1.py
│ │ │ ├── nnUNetTrainerV2_Mish.py
│ │ │ ├── nnUNetTrainerV2_NoNormalization.py
│ │ │ ├── nnUNetTrainerV2_NoNormalization_lr1en3.py
│ │ │ ├── nnUNetTrainerV2_ReLU.py
│ │ │ ├── nnUNetTrainerV2_ReLU_biasInSegOutput.py
│ │ │ ├── nnUNetTrainerV2_ReLU_convReLUIN.py
│ │ │ ├── nnUNetTrainerV2_ResencUNet.py
│ │ │ ├── nnUNetTrainerV2_ResencUNet_DA3.py
│ │ │ ├── nnUNetTrainerV2_ResencUNet_DA3_BN.py
│ │ │ ├── nnUNetTrainerV2_ResidualAttentionUNet.py
│ │ │ ├── nnUNetTrainerV2_ResidualUNet.py
│ │ │ ├── nnUNetTrainerV2_allConv3x3.py
│ │ │ ├── nnUNetTrainerV2_lReLU_biasInSegOutput.py
│ │ │ ├── nnUNetTrainerV2_lReLU_convlReLUIN.py
│ │ │ ├── nnUNetTrainerV2_noDeepSupervision.py
│ │ │ └── nnUNetTrainerV2_softDeepSupervision.py
│ │ │ ├── benchmarking
│ │ │ ├── __init__.py
│ │ │ ├── nnUNetTrainerV2_2epochs.py
│ │ │ └── nnUNetTrainerV2_dummyLoad.py
│ │ │ ├── cascade
│ │ │ ├── __init__.py
│ │ │ ├── nnUNetTrainerV2CascadeFullRes_DAVariants.py
│ │ │ ├── nnUNetTrainerV2CascadeFullRes_lowerLR.py
│ │ │ ├── nnUNetTrainerV2CascadeFullRes_shorter.py
│ │ │ └── nnUNetTrainerV2CascadeFullRes_shorter_lowerLR.py
│ │ │ ├── copies
│ │ │ ├── __init__.py
│ │ │ └── nnUNetTrainerV2_copies.py
│ │ │ ├── data_augmentation
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ ├── nnUNetTrainerV2_DA3.cpython-38.pyc
│ │ │ │ └── nnUNetTrainerV2_insaneDA.cpython-38.pyc
│ │ │ ├── nnUNetTrainerV2_DA2.py
│ │ │ ├── nnUNetTrainerV2_DA3.py
│ │ │ ├── nnUNetTrainerV2_DA5.py
│ │ │ ├── nnUNetTrainerV2_independentScalePerAxis.py
│ │ │ ├── nnUNetTrainerV2_insaneDA.py
│ │ │ ├── nnUNetTrainerV2_noDA.py
│ │ │ └── nnUNetTrainerV2_noMirroring.py
│ │ │ ├── loss_function
│ │ │ ├── __init__.py
│ │ │ ├── nnUNetTrainerV2_ForceBD.py
│ │ │ ├── nnUNetTrainerV2_ForceSD.py
│ │ │ ├── nnUNetTrainerV2_Loss_CE.py
│ │ │ ├── nnUNetTrainerV2_Loss_CEGDL.py
│ │ │ ├── nnUNetTrainerV2_Loss_Dice.py
│ │ │ ├── nnUNetTrainerV2_Loss_DiceCE_noSmooth.py
│ │ │ ├── nnUNetTrainerV2_Loss_DiceTopK10.py
│ │ │ ├── nnUNetTrainerV2_Loss_Dice_lr1en3.py
│ │ │ ├── nnUNetTrainerV2_Loss_Dice_squared.py
│ │ │ ├── nnUNetTrainerV2_Loss_MCC.py
│ │ │ ├── nnUNetTrainerV2_Loss_TopK10.py
│ │ │ ├── nnUNetTrainerV2_focalLoss.py
│ │ │ └── nnUNetTrainerV2_graduallyTransitionFromCEToDice.py
│ │ │ ├── miscellaneous
│ │ │ ├── __init__.py
│ │ │ └── nnUNetTrainerV2_fullEvals.py
│ │ │ ├── nnUNetTrainerCE.py
│ │ │ ├── nnUNetTrainerNoDA.py
│ │ │ ├── optimizer_and_lr
│ │ │ ├── __init__.py
│ │ │ ├── nnUNetTrainerV2_Adam.py
│ │ │ ├── nnUNetTrainerV2_Adam_ReduceOnPlateau.py
│ │ │ ├── nnUNetTrainerV2_Adam_lr_3en4.py
│ │ │ ├── nnUNetTrainerV2_Ranger_lr1en2.py
│ │ │ ├── nnUNetTrainerV2_Ranger_lr3en3.py
│ │ │ ├── nnUNetTrainerV2_Ranger_lr3en4.py
│ │ │ ├── nnUNetTrainerV2_SGD_ReduceOnPlateau.py
│ │ │ ├── nnUNetTrainerV2_SGD_fixedSchedule.py
│ │ │ ├── nnUNetTrainerV2_SGD_fixedSchedule2.py
│ │ │ ├── nnUNetTrainerV2_SGD_lrs.py
│ │ │ ├── nnUNetTrainerV2_cycleAtEnd.py
│ │ │ ├── nnUNetTrainerV2_fp16.py
│ │ │ ├── nnUNetTrainerV2_momentum09.py
│ │ │ ├── nnUNetTrainerV2_momentum095.py
│ │ │ ├── nnUNetTrainerV2_momentum098.py
│ │ │ ├── nnUNetTrainerV2_momentum09in2D.py
│ │ │ ├── nnUNetTrainerV2_reduceMomentumDuringTraining.py
│ │ │ └── nnUNetTrainerV2_warmup.py
│ │ │ └── resampling
│ │ │ ├── __init__.py
│ │ │ └── nnUNetTrainerV2_resample33.py
│ └── optimizer
│ │ ├── __init__.py
│ │ └── ranger.py
└── utilities
│ ├── __init__.py
│ ├── __pycache__
│ ├── __init__.cpython-38.pyc
│ ├── distributed.cpython-38.pyc
│ ├── file_endings.cpython-38.pyc
│ ├── nd_softmax.cpython-38.pyc
│ ├── one_hot_encoding.cpython-38.pyc
│ ├── random_stuff.cpython-38.pyc
│ ├── sitk_stuff.cpython-38.pyc
│ ├── task_name_id_conversion.cpython-38.pyc
│ ├── tensor_utilities.cpython-38.pyc
│ └── to_torch.cpython-38.pyc
│ ├── distributed.py
│ ├── file_conversions.py
│ ├── file_endings.py
│ ├── folder_names.py
│ ├── image_reorientation.py
│ ├── nd_softmax.py
│ ├── one_hot_encoding.py
│ ├── overlay_plots.py
│ ├── random_stuff.py
│ ├── recursive_delete_npz.py
│ ├── recursive_rename_taskXX_to_taskXXX.py
│ ├── set_n_proc_DA.py
│ ├── sitk_stuff.py
│ ├── task_name_id_conversion.py
│ ├── tensor_utilities.py
│ └── to_torch.py
├── scratch.py
├── setup.cfg
└── setup.py
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/.DS_Store
--------------------------------------------------------------------------------
/nnunet.egg-info/PKG-INFO:
--------------------------------------------------------------------------------
1 | Metadata-Version: 1.0
2 | Name: nnunet
3 | Version: 1.7.0
4 | Summary: nnU-Net. Framework for out-of-the box biomedical image segmentation.
5 | Home-page: https://github.com/MIC-DKFZ/nnUNet
6 | Author: Division of Medical Image Computing, German Cancer Research Center
7 | Author-email: f.isensee@dkfz-heidelberg.de
8 | License: Apache License Version 2.0, January 2004
9 | Description: UNKNOWN
10 | Keywords: deep learning,image segmentation,medical image analysis,medical image segmentation,nnU-Net,nnunet
11 | Platform: UNKNOWN
12 |
--------------------------------------------------------------------------------
/nnunet.egg-info/dependency_links.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/nnunet.egg-info/entry_points.txt:
--------------------------------------------------------------------------------
1 | [console_scripts]
2 | nnUNet_change_trainer_class = nnunet.inference.change_trainer:main
3 | nnUNet_convert_decathlon_task = nnunet.experiment_planning.nnUNet_convert_decathlon_task:main
4 | nnUNet_determine_postprocessing = nnunet.postprocessing.consolidate_postprocessing_simple:main
5 | nnUNet_download_pretrained_model = nnunet.inference.pretrained_models.download_pretrained_model:download_by_name
6 | nnUNet_download_pretrained_model_by_url = nnunet.inference.pretrained_models.download_pretrained_model:download_by_url
7 | nnUNet_ensemble = nnunet.inference.ensemble_predictions:main
8 | nnUNet_evaluate_folder = nnunet.evaluation.evaluator:nnunet_evaluate_folder
9 | nnUNet_export_model_to_zip = nnunet.inference.pretrained_models.collect_pretrained_models:export_entry_point
10 | nnUNet_find_best_configuration = nnunet.evaluation.model_selection.figure_out_what_to_submit:main
11 | nnUNet_install_pretrained_model_from_zip = nnunet.inference.pretrained_models.download_pretrained_model:install_from_zip_entry_point
12 | nnUNet_plan_and_preprocess = nnunet.experiment_planning.nnUNet_plan_and_preprocess:main
13 | nnUNet_plot_task_pngs = nnunet.utilities.overlay_plots:entry_point_generate_overlay
14 | nnUNet_predict = nnunet.inference.predict_simple:main
15 | nnUNet_print_available_pretrained_models = nnunet.inference.pretrained_models.download_pretrained_model:print_available_pretrained_models
16 | nnUNet_print_pretrained_model_info = nnunet.inference.pretrained_models.download_pretrained_model:print_pretrained_model_requirements
17 | nnUNet_train = nnunet.run.run_training:main
18 | nnUNet_train_DDP = nnunet.run.run_training_DDP:main
19 | nnUNet_train_DP = nnunet.run.run_training_DP:main
20 |
21 |
--------------------------------------------------------------------------------
/nnunet.egg-info/requires.txt:
--------------------------------------------------------------------------------
1 | torch>=1.6.0a
2 | tqdm
3 | dicom2nifti
4 | scikit-image>=0.14
5 | medpy
6 | scipy
7 | batchgenerators>=0.23
8 | numpy
9 | sklearn
10 | SimpleITK
11 | pandas
12 | requests
13 | nibabel
14 | tifffile
15 | matplotlib
16 |
--------------------------------------------------------------------------------
/nnunet.egg-info/top_level.txt:
--------------------------------------------------------------------------------
1 | nnunet
2 |
--------------------------------------------------------------------------------
/nnunet/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/.DS_Store
--------------------------------------------------------------------------------
/nnunet/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/nnunet/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/nnunet/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/nnunet/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/nnunet/.idea/nnunet.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/nnunet/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/nnunet/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | print("\n\nPlease cite the following paper when using nnUNet:\n\nIsensee, F., Jaeger, P.F., Kohl, S.A.A. et al. "
3 | "\"nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation.\" "
4 | "Nat Methods (2020). https://doi.org/10.1038/s41592-020-01008-z\n\n")
5 | print("If you have questions or suggestions, feel free to open an issue at https://github.com/MIC-DKFZ/nnUNet\n")
6 |
7 | from . import *
--------------------------------------------------------------------------------
/nnunet/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/__pycache__/configuration.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/__pycache__/configuration.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/__pycache__/paths.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/__pycache__/paths.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/configuration.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | default_num_threads = 8 if 'nnUNet_def_n_proc' not in os.environ else int(os.environ['nnUNet_def_n_proc'])
4 | RESAMPLING_SEPARATE_Z_ANISO_THRESHOLD = 3 # determines what threshold to use for resampling the low resolution axis
5 | # separately (with NN)
--------------------------------------------------------------------------------
/nnunet/dataset_conversion/Task135_KiTS2021.py:
--------------------------------------------------------------------------------
1 | from batchgenerators.utilities.file_and_folder_operations import *
2 | import shutil
3 |
4 | from nnunet.paths import nnUNet_raw_data
5 | from nnunet.dataset_conversion.utils import generate_dataset_json
6 |
7 | if __name__ == '__main__':
8 | # this is the data folder from the kits21 github repository, see https://github.com/neheller/kits21
9 | kits_data_dir = '/home/fabian/git_repos/kits21/kits21/data'
10 |
11 | # This script uses the majority voted segmentation as ground truth
12 | kits_segmentation_filename = 'aggregated_MAJ_seg.nii.gz'
13 |
14 | # Arbitrary task id. This is just to ensure each dataset ha a unique number. Set this to whatever ([0-999]) you
15 | # want
16 | task_id = 135
17 | task_name = "KiTS2021"
18 |
19 | foldername = "Task%03.0d_%s" % (task_id, task_name)
20 |
21 | # setting up nnU-Net folders
22 | out_base = join(nnUNet_raw_data, foldername)
23 | imagestr = join(out_base, "imagesTr")
24 | labelstr = join(out_base, "labelsTr")
25 | maybe_mkdir_p(imagestr)
26 | maybe_mkdir_p(labelstr)
27 |
28 | case_ids = subdirs(kits_data_dir, prefix='case_', join=False)
29 | for c in case_ids:
30 | if isfile(join(kits_data_dir, c, kits_segmentation_filename)):
31 | shutil.copy(join(kits_data_dir, c, kits_segmentation_filename), join(labelstr, c + '.nii.gz'))
32 | shutil.copy(join(kits_data_dir, c, 'imaging.nii.gz'), join(imagestr, c + '_0000.nii.gz'))
33 |
34 | generate_dataset_json(join(out_base, 'dataset.json'),
35 | imagestr,
36 | None,
37 | ('CT',),
38 | {
39 | 0: 'background',
40 | 1: "kidney",
41 | 2: "tumor",
42 | 3: "cyst",
43 | },
44 | task_name,
45 | license='see https://kits21.kits-challenge.org/participate#download-block',
46 | dataset_description='see https://kits21.kits-challenge.org/',
47 | dataset_reference='https://www.sciencedirect.com/science/article/abs/pii/S1361841520301857, '
48 | 'https://kits21.kits-challenge.org/',
49 | dataset_release='0')
50 |
--------------------------------------------------------------------------------
/nnunet/dataset_conversion/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | from . import *
--------------------------------------------------------------------------------
/nnunet/evaluation/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/evaluation/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/evaluation/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/evaluation/__pycache__/evaluator.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/evaluation/__pycache__/evaluator.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/evaluation/__pycache__/metrics.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/evaluation/__pycache__/metrics.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/evaluation/__pycache__/region_based_evaluation.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/evaluation/__pycache__/region_based_evaluation.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/evaluation/add_mean_dice_to_json.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import json
16 | import numpy as np
17 | from batchgenerators.utilities.file_and_folder_operations import subfiles
18 | from collections import OrderedDict
19 |
20 |
21 | def foreground_mean(filename):
22 | with open(filename, 'r') as f:
23 | res = json.load(f)
24 | class_ids = np.array([int(i) for i in res['results']['mean'].keys() if (i != 'mean')])
25 | class_ids = class_ids[class_ids != 0]
26 | class_ids = class_ids[class_ids != -1]
27 | class_ids = class_ids[class_ids != 99]
28 |
29 | tmp = res['results']['mean'].get('99')
30 | if tmp is not None:
31 | _ = res['results']['mean'].pop('99')
32 |
33 | metrics = res['results']['mean']['1'].keys()
34 | res['results']['mean']["mean"] = OrderedDict()
35 | for m in metrics:
36 | foreground_values = [res['results']['mean'][str(i)][m] for i in class_ids]
37 | res['results']['mean']["mean"][m] = np.nanmean(foreground_values)
38 | with open(filename, 'w') as f:
39 | json.dump(res, f, indent=4, sort_keys=True)
40 |
41 |
42 | def run_in_folder(folder):
43 | json_files = subfiles(folder, True, None, ".json", True)
44 | json_files = [i for i in json_files if not i.split("/")[-1].startswith(".") and not i.endswith("_globalMean.json")] # stupid mac
45 | for j in json_files:
46 | foreground_mean(j)
47 |
48 |
49 | if __name__ == "__main__":
50 | folder = "/media/fabian/Results/nnUNetOutput_final/summary_jsons"
51 | run_in_folder(folder)
52 |
--------------------------------------------------------------------------------
/nnunet/evaluation/collect_results_files.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import os
16 | import shutil
17 | from batchgenerators.utilities.file_and_folder_operations import subdirs, subfiles
18 |
19 |
20 | def crawl_and_copy(current_folder, out_folder, prefix="fabian_", suffix="ummary.json"):
21 | """
22 | This script will run recursively through all subfolders of current_folder and copy all files that end with
23 | suffix with some automatically generated prefix into out_folder
24 | :param current_folder:
25 | :param out_folder:
26 | :param prefix:
27 | :return:
28 | """
29 | s = subdirs(current_folder, join=False)
30 | f = subfiles(current_folder, join=False)
31 | f = [i for i in f if i.endswith(suffix)]
32 | if current_folder.find("fold0") != -1:
33 | for fl in f:
34 | shutil.copy(os.path.join(current_folder, fl), os.path.join(out_folder, prefix+fl))
35 | for su in s:
36 | if prefix == "":
37 | add = su
38 | else:
39 | add = "__" + su
40 | crawl_and_copy(os.path.join(current_folder, su), out_folder, prefix=prefix+add)
41 |
42 |
43 | if __name__ == "__main__":
44 | from nnunet.paths import network_training_output_dir
45 | output_folder = "/home/fabian/PhD/results/nnUNetV2/leaderboard"
46 | crawl_and_copy(network_training_output_dir, output_folder)
47 | from nnunet.evaluation.add_mean_dice_to_json import run_in_folder
48 | run_in_folder(output_folder)
49 |
--------------------------------------------------------------------------------
/nnunet/evaluation/model_selection/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/experiment_planning/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/.DS_Store
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/DatasetAnalyzer.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/DatasetAnalyzer.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/change_batch_size.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/change_batch_size.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/common_utils.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/common_utils.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/experiment_planner_baseline_2DUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/experiment_planner_baseline_2DUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/experiment_planner_baseline_2DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/experiment_planner_baseline_2DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/experiment_planner_baseline_3DUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/experiment_planner_baseline_3DUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/nnUNet_convert_decathlon_task.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/nnUNet_convert_decathlon_task.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/nnUNet_plan_and_preprocess.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/nnUNet_plan_and_preprocess.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/summarize_plans.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/summarize_plans.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/__pycache__/utils.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/__pycache__/utils.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/.DS_Store
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__init__.py
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_Attention_3DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_Attention_3DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_SingleAttention_3DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_SingleAttention_3DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_SpatialSingleAttention_3DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_SpatialSingleAttention_3DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21_11GB.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21_11GB.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21_16GB.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21_16GB.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21_32GB.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21_32GB.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21_3convperstage.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v21_3convperstage.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v22.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v22.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v23.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_baseline_3DUNet_v23.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_dense3DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_dense3DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_generic_3DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_generic_3DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_inception3DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_inception3DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_pretrained.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_pretrained.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_residual3DUNet_v21.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/__pycache__/experiment_planner_residual3DUNet_v21.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/experiment_planner_baseline_3DUNet_v21_3convperstage.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | from copy import deepcopy
16 |
17 | import numpy as np
18 | from nnunet.experiment_planning.common_utils import get_pool_and_conv_props
19 | from nnunet.experiment_planning.experiment_planner_baseline_3DUNet import ExperimentPlanner
20 | from nnunet.experiment_planning.experiment_planner_baseline_3DUNet_v21 import ExperimentPlanner3D_v21
21 | from nnunet.network_architecture.generic_UNet import Generic_UNet
22 | from nnunet.paths import *
23 |
24 |
25 | class ExperimentPlanner3D_v21_3cps(ExperimentPlanner3D_v21):
26 | """
27 | have 3x conv-in-lrelu per resolution instead of 2 while remaining in the same memory budget
28 |
29 | This only works with 3d fullres because we use the same data as ExperimentPlanner3D_v21. Lowres would require to
30 | rerun preprocesing (different patch size = different 3d lowres target spacing)
31 | """
32 | def __init__(self, folder_with_cropped_data, preprocessed_output_folder):
33 | super(ExperimentPlanner3D_v21_3cps, self).__init__(folder_with_cropped_data, preprocessed_output_folder)
34 | self.plans_fname = join(self.preprocessed_output_folder,
35 | "nnUNetPlansv2.1_3cps_plans_3D.pkl")
36 | self.unet_base_num_features = 32
37 | self.conv_per_stage = 3
38 |
39 | def run_preprocessing(self, num_threads):
40 | pass
41 |
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/experiment_planner_baseline_3DUNet_v23.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | from nnunet.experiment_planning.experiment_planner_baseline_3DUNet_v21 import \
16 | ExperimentPlanner3D_v21
17 | from nnunet.paths import *
18 |
19 |
20 | class ExperimentPlanner3D_v23(ExperimentPlanner3D_v21):
21 | """
22 | """
23 | def __init__(self, folder_with_cropped_data, preprocessed_output_folder):
24 | super(ExperimentPlanner3D_v23, self).__init__(folder_with_cropped_data, preprocessed_output_folder)
25 | self.data_identifier = "nnUNetData_plans_v2.3"
26 | self.plans_fname = join(self.preprocessed_output_folder,
27 | "nnUNetPlansv2.3_plans_3D.pkl")
28 | self.preprocessor_name = "Preprocessor3DDifferentResampling"
29 |
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/experiment_planner_pretrained.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | from batchgenerators.utilities.file_and_folder_operations import load_pickle
16 | from nnunet.experiment_planning.experiment_planner_baseline_3DUNet_v21 import ExperimentPlanner3D_v21
17 | from nnunet.paths import *
18 |
19 |
20 | class ExperimentPlanner3D_v21_Pretrained(ExperimentPlanner3D_v21):
21 | def __init__(self, folder_with_cropped_data, preprocessed_output_folder, pretrained_model_plans_file: str,
22 | pretrained_name: str):
23 | super().__init__(folder_with_cropped_data, preprocessed_output_folder)
24 | self.pretrained_model_plans_file = pretrained_model_plans_file
25 | self.pretrained_name = pretrained_name
26 | self.data_identifier = "nnUNetData_pretrained_" + pretrained_name
27 | self.plans_fname = join(self.preprocessed_output_folder, "nnUNetPlans_pretrained_%s_plans_3D.pkl" % pretrained_name)
28 |
29 | def load_pretrained_plans(self):
30 | classes = self.plans['num_classes']
31 | self.plans = load_pickle(self.pretrained_model_plans_file)
32 | self.plans['num_classes'] = classes
33 | self.transpose_forward = self.plans['transpose_forward']
34 | self.preprocessor_name = self.plans['preprocessor_name']
35 | self.plans_per_stage = self.plans['plans_per_stage']
36 | self.plans['data_identifier'] = self.data_identifier
37 | self.save_my_plans()
38 | print(self.plans['plans_per_stage'])
39 |
40 | def run_preprocessing(self, num_threads):
41 | self.load_pretrained_plans()
42 | super().run_preprocessing(num_threads)
43 |
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/normalization/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/normalization/__init__.py
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/normalization/experiment_planner_2DUNet_v21_RGB_scaleto_0_1.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.experiment_planning.experiment_planner_baseline_2DUNet_v21 import ExperimentPlanner2D_v21
17 | from nnunet.paths import *
18 |
19 |
20 | class ExperimentPlanner2D_v21_RGB_scaleTo_0_1(ExperimentPlanner2D_v21):
21 | """
22 | used by tutorial nnunet.tutorials.custom_preprocessing
23 | """
24 | def __init__(self, folder_with_cropped_data, preprocessed_output_folder):
25 | super().__init__(folder_with_cropped_data, preprocessed_output_folder)
26 | self.data_identifier = "nnUNet_RGB_scaleTo_0_1"
27 | self.plans_fname = join(self.preprocessed_output_folder, "nnUNet_RGB_scaleTo_0_1" + "_plans_2D.pkl")
28 |
29 | # The custom preprocessor class we intend to use is GenericPreprocessor_scale_uint8_to_0_1. It must be located
30 | # in nnunet.preprocessing (any file and submodule) and will be found by its name. Make sure to always define
31 | # unique names!
32 | self.preprocessor_name = 'GenericPreprocessor_scale_uint8_to_0_1'
33 |
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/normalization/experiment_planner_3DUNet_CT2.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from collections import OrderedDict
17 |
18 | from nnunet.experiment_planning.experiment_planner_baseline_3DUNet import ExperimentPlanner
19 | from nnunet.paths import *
20 |
21 |
22 | class ExperimentPlannerCT2(ExperimentPlanner):
23 | """
24 | preprocesses CT data with the "CT2" normalization.
25 |
26 | (clip range comes from training set and is the 0.5 and 99.5 percentile of intensities in foreground)
27 | CT = clip to range, then normalize with global mn and sd (computed on foreground in training set)
28 | CT2 = clip to range, normalize each case separately with its own mn and std (computed within the area that was in clip_range)
29 | """
30 | def __init__(self, folder_with_cropped_data, preprocessed_output_folder):
31 | super(ExperimentPlannerCT2, self).__init__(folder_with_cropped_data, preprocessed_output_folder)
32 | self.data_identifier = "nnUNet_CT2"
33 | self.plans_fname = join(self.preprocessed_output_folder, "nnUNetPlans" + "CT2_plans_3D.pkl")
34 |
35 | def determine_normalization_scheme(self):
36 | schemes = OrderedDict()
37 | modalities = self.dataset_properties['modalities']
38 | num_modalities = len(list(modalities.keys()))
39 |
40 | for i in range(num_modalities):
41 | if modalities[i] == "CT":
42 | schemes[i] = "CT2"
43 | else:
44 | schemes[i] = "nonCT"
45 | return schemes
46 |
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/normalization/experiment_planner_3DUNet_nonCT.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from collections import OrderedDict
17 |
18 | from nnunet.experiment_planning.experiment_planner_baseline_3DUNet import ExperimentPlanner
19 | from nnunet.paths import *
20 |
21 |
22 | class ExperimentPlannernonCT(ExperimentPlanner):
23 | """
24 | Preprocesses all data in nonCT mode (this is what we use for MRI per default, but here it is applied to CT images
25 | as well)
26 | """
27 | def __init__(self, folder_with_cropped_data, preprocessed_output_folder):
28 | super(ExperimentPlannernonCT, self).__init__(folder_with_cropped_data, preprocessed_output_folder)
29 | self.data_identifier = "nnUNet_nonCT"
30 | self.plans_fname = join(self.preprocessed_output_folder, "nnUNetPlans" + "nonCT_plans_3D.pkl")
31 |
32 | def determine_normalization_scheme(self):
33 | schemes = OrderedDict()
34 | modalities = self.dataset_properties['modalities']
35 | num_modalities = len(list(modalities.keys()))
36 |
37 | for i in range(num_modalities):
38 | if modalities[i] == "CT":
39 | schemes[i] = "nonCT"
40 | else:
41 | schemes[i] = "nonCT"
42 | return schemes
43 |
44 |
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/patch_size/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/patch_size/__init__.py
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/pooling_and_convs/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/pooling_and_convs/__init__.py
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/readme.md:
--------------------------------------------------------------------------------
1 | These alternatives are not used in nnU-Net, but you can use them if you believe they might be better suited for you.
2 | I (Fabian) have not found them to be consistently superior.
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/target_spacing/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/alternative_experiment_planning/target_spacing/__init__.py
--------------------------------------------------------------------------------
/nnunet/experiment_planning/alternative_experiment_planning/target_spacing/experiment_planner_baseline_3DUNet_v21_customTargetSpacing_2x2x2.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import numpy as np
16 | from nnunet.experiment_planning.experiment_planner_baseline_3DUNet_v21 import ExperimentPlanner3D_v21
17 | from nnunet.paths import *
18 |
19 |
20 | class ExperimentPlanner3D_v21_customTargetSpacing_2x2x2(ExperimentPlanner3D_v21):
21 | def __init__(self, folder_with_cropped_data, preprocessed_output_folder):
22 | super(ExperimentPlanner3D_v21, self).__init__(folder_with_cropped_data, preprocessed_output_folder)
23 | # we change the data identifier and plans_fname. This will make this experiment planner save the preprocessed
24 | # data in a different folder so that they can co-exist with the default (ExperimentPlanner3D_v21). We also
25 | # create a custom plans file that will be linked to this data
26 | self.data_identifier = "nnUNetData_plans_v2.1_trgSp_2x2x2"
27 | self.plans_fname = join(self.preprocessed_output_folder,
28 | "nnUNetPlansv2.1_trgSp_2x2x2_plans_3D.pkl")
29 |
30 | def get_target_spacing(self):
31 | # simply return the desired spacing as np.array
32 | return np.array([2., 2., 2.]) # make sure this is float!!!! Not int!
33 |
34 |
--------------------------------------------------------------------------------
/nnunet/experiment_planning/change_batch_size.py:
--------------------------------------------------------------------------------
1 | from batchgenerators.utilities.file_and_folder_operations import *
2 | import numpy as np
3 |
4 | if __name__ == '__main__':
5 | input_file = '/home/fabian/data/nnUNet_preprocessed/Task004_Hippocampus/nnUNetPlansv2.1_plans_3D.pkl'
6 | output_file = '/home/fabian/data/nnUNet_preprocessed/Task004_Hippocampus/nnUNetPlansv2.1_LISA_plans_3D.pkl'
7 | a = load_pickle(input_file)
8 | a['plans_per_stage'][0]['batch_size'] = int(np.floor(6 / 9 * a['plans_per_stage'][0]['batch_size']))
9 | save_pickle(a, output_file)
--------------------------------------------------------------------------------
/nnunet/experiment_planning/old/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/experiment_planning/old/__init__.py
--------------------------------------------------------------------------------
/nnunet/inference/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/inference/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/inference/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/inference/__pycache__/ensemble_predictions.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/inference/__pycache__/ensemble_predictions.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/inference/__pycache__/predict.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/inference/__pycache__/predict.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/inference/__pycache__/predict_simple.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/inference/__pycache__/predict_simple.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/inference/__pycache__/segmentation_export.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/inference/__pycache__/segmentation_export.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/inference/pretrained_models/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/inference/pretrained_models/__init__.py
--------------------------------------------------------------------------------
/nnunet/network_architecture/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/.DS_Store
--------------------------------------------------------------------------------
/nnunet/network_architecture/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/network_architecture/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/__pycache__/generic_UNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/__pycache__/generic_UNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/__pycache__/generic_UNet_DP.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/__pycache__/generic_UNet_DP.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/__pycache__/generic_modular_UNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/__pycache__/generic_modular_UNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/__pycache__/generic_modular_custom_UNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/__pycache__/generic_modular_custom_UNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/__pycache__/generic_modular_residual_UNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/__pycache__/generic_modular_residual_UNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/__pycache__/initialization.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/__pycache__/initialization.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/__pycache__/neural_network.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/__pycache__/neural_network.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/custom_modules/__init__.py
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/custom_modules/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/__pycache__/conv_blocks.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/custom_modules/__pycache__/conv_blocks.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/__pycache__/feature_response_normalization.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/custom_modules/__pycache__/feature_response_normalization.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/__pycache__/helperModules.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/custom_modules/__pycache__/helperModules.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/__pycache__/mish.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/network_architecture/custom_modules/__pycache__/mish.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/feature_response_normalization.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.utilities.tensor_utilities import mean_tensor
17 | from torch import nn
18 | import torch
19 | from torch.nn.parameter import Parameter
20 | import torch.jit
21 |
22 |
23 | class FRN3D(nn.Module):
24 | def __init__(self, num_features: int, eps=1e-6, **kwargs):
25 | super().__init__()
26 | self.eps = eps
27 | self.num_features = num_features
28 | self.weight = Parameter(torch.ones(1, num_features, 1, 1, 1), True)
29 | self.bias = Parameter(torch.zeros(1, num_features, 1, 1, 1), True)
30 | self.tau = Parameter(torch.zeros(1, num_features, 1, 1, 1), True)
31 |
32 | def forward(self, x: torch.Tensor):
33 | x = x * torch.rsqrt(mean_tensor(x * x, [2, 3, 4], keepdim=True) + self.eps)
34 |
35 | return torch.max(self.weight * x + self.bias, self.tau)
36 |
37 |
38 | if __name__ == "__main__":
39 | tmp = torch.rand((3, 32, 16, 16, 16))
40 |
41 | frn = FRN3D(32)
42 |
43 | out = frn(tmp)
44 |
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/helperModules.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from torch import nn
17 |
18 |
19 | class Identity(nn.Module):
20 | def __init__(self, *args, **kwargs):
21 | super().__init__()
22 |
23 | def forward(self, input):
24 | return input
25 |
26 |
27 | class MyGroupNorm(nn.GroupNorm):
28 | def __init__(self, num_channels, eps=1e-5, affine=True, num_groups=8):
29 | super(MyGroupNorm, self).__init__(num_groups, num_channels, eps, affine)
30 |
--------------------------------------------------------------------------------
/nnunet/network_architecture/custom_modules/mish.py:
--------------------------------------------------------------------------------
1 | ############
2 | # https://github.com/lessw2020/mish/blob/master/mish.py
3 | # This code was taken from the repo above and was not created by me (Fabian)! Full credit goes to the original authors
4 | ############
5 |
6 | import torch
7 |
8 | import torch.nn as nn
9 | import torch.nn.functional as F
10 |
11 |
12 | # Mish - "Mish: A Self Regularized Non-Monotonic Neural Activation Function"
13 | # https://arxiv.org/abs/1908.08681v1
14 | # implemented for PyTorch / FastAI by lessw2020
15 | # github: https://github.com/lessw2020/mish
16 |
17 | class Mish(nn.Module):
18 | def __init__(self):
19 | super().__init__()
20 |
21 | def forward(self, x):
22 | # inlining this saves 1 second per epoch (V100 GPU) vs having a temp x and then returning x(!)
23 | return x * (torch.tanh(F.softplus(x)))
24 |
--------------------------------------------------------------------------------
/nnunet/network_architecture/initialization.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from torch import nn
17 |
18 |
19 | class InitWeights_He(object):
20 | def __init__(self, neg_slope=1e-2):
21 | self.neg_slope = neg_slope
22 |
23 | def __call__(self, module):
24 | if isinstance(module, nn.Conv3d) or isinstance(module, nn.Conv2d) or isinstance(module, nn.ConvTranspose2d) or isinstance(module, nn.ConvTranspose3d):
25 | module.weight = nn.init.kaiming_normal_(module.weight, a=self.neg_slope)
26 | if module.bias is not None:
27 | module.bias = nn.init.constant_(module.bias, 0)
28 |
29 |
30 | class InitWeights_XavierUniform(object):
31 | def __init__(self, gain=1):
32 | self.gain = gain
33 |
34 | def __call__(self, module):
35 | if isinstance(module, nn.Conv3d) or isinstance(module, nn.Conv2d) or isinstance(module, nn.ConvTranspose2d) or isinstance(module, nn.ConvTranspose3d):
36 | module.weight = nn.init.xavier_uniform_(module.weight, self.gain)
37 | if module.bias is not None:
38 | module.bias = nn.init.constant_(module.bias, 0)
39 |
--------------------------------------------------------------------------------
/nnunet/postprocessing/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/postprocessing/__init__.py
--------------------------------------------------------------------------------
/nnunet/postprocessing/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/postprocessing/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/postprocessing/__pycache__/connected_components.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/postprocessing/__pycache__/connected_components.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/postprocessing/__pycache__/consolidate_postprocessing.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/postprocessing/__pycache__/consolidate_postprocessing.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/preprocessing/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/preprocessing/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/preprocessing/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/preprocessing/__pycache__/cropping.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/preprocessing/__pycache__/cropping.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/preprocessing/__pycache__/preprocessing.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/preprocessing/__pycache__/preprocessing.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/preprocessing/__pycache__/sanity_checks.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/preprocessing/__pycache__/sanity_checks.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/preprocessing/custom_preprocessors/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/preprocessing/custom_preprocessors/__init__.py
--------------------------------------------------------------------------------
/nnunet/run/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/run/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/run/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/run/__pycache__/default_configuration.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/run/__pycache__/default_configuration.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/run/__pycache__/load_pretrained_weights.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/run/__pycache__/load_pretrained_weights.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/run/__pycache__/run_training.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/run/__pycache__/run_training.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/.DS_Store
--------------------------------------------------------------------------------
/nnunet/training/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/training/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/__pycache__/model_restore.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/__pycache__/model_restore.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/cascade_stuff/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/training/cascade_stuff/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/cascade_stuff/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/cascade_stuff/__pycache__/predict_next_stage.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/cascade_stuff/__pycache__/predict_next_stage.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/custom_transforms.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/custom_transforms.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/data_augmentation_insaneDA.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/data_augmentation_insaneDA.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/data_augmentation_insaneDA2.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/data_augmentation_insaneDA2.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/data_augmentation_moreDA.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/data_augmentation_moreDA.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/data_augmentation_noDA.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/data_augmentation_noDA.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/default_data_augmentation.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/default_data_augmentation.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/downsampling.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/downsampling.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/data_augmentation/__pycache__/pyramid_augmentations.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/data_augmentation/__pycache__/pyramid_augmentations.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/dataloading/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/training/dataloading/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/dataloading/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/dataloading/__pycache__/dataset_loading.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/dataloading/__pycache__/dataset_loading.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/learning_rate/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/learning_rate/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/learning_rate/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/learning_rate/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/learning_rate/__pycache__/poly_lr.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/learning_rate/__pycache__/poly_lr.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/learning_rate/poly_lr.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | def poly_lr(epoch, max_epochs, initial_lr, exponent=0.9):
17 | return initial_lr * (1 - epoch / max_epochs)**exponent
18 |
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/TopK_loss.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import numpy as np
16 | import torch
17 | from nnunet.training.loss_functions.crossentropy import RobustCrossEntropyLoss
18 |
19 |
20 | class TopKLoss(RobustCrossEntropyLoss):
21 | """
22 | Network has to have NO LINEARITY!
23 | """
24 | def __init__(self, weight=None, ignore_index=-100, k=10):
25 | self.k = k
26 | super(TopKLoss, self).__init__(weight, False, ignore_index, reduce=False)
27 |
28 | def forward(self, inp, target):
29 | target = target[:, 0].long()
30 | res = super(TopKLoss, self).forward(inp, target)
31 | num_voxels = np.prod(res.shape, dtype=np.int64)
32 | res, _ = torch.topk(res.view((-1, )), int(num_voxels * self.k / 100), sorted=False)
33 | return res.mean()
34 |
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/__pycache__/TopK_loss.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/loss_functions/__pycache__/TopK_loss.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/loss_functions/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/__pycache__/crossentropy.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/loss_functions/__pycache__/crossentropy.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/__pycache__/deep_supervision.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/loss_functions/__pycache__/deep_supervision.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/__pycache__/dice_loss.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/loss_functions/__pycache__/dice_loss.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/crossentropy.py:
--------------------------------------------------------------------------------
1 | from torch import nn, Tensor
2 |
3 |
4 | class RobustCrossEntropyLoss(nn.CrossEntropyLoss):
5 | """
6 | this is just a compatibility layer because my target tensor is float and has an extra dimension
7 | """
8 | def forward(self, input: Tensor, target: Tensor) -> Tensor:
9 | if len(target.shape) == len(input.shape):
10 | assert target.shape[1] == 1
11 | target = target[:, 0]
12 | return super().forward(input, target.long())
--------------------------------------------------------------------------------
/nnunet/training/loss_functions/deep_supervision.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from torch import nn
17 |
18 |
19 | class MultipleOutputLoss2(nn.Module):
20 | def __init__(self, loss, weight_factors=None):
21 | """
22 | use this if you have several outputs and ground truth (both list of same len) and the loss should be computed
23 | between them (x[0] and y[0], x[1] and y[1] etc)
24 | :param loss:
25 | :param weight_factors:
26 | """
27 | super(MultipleOutputLoss2, self).__init__()
28 | self.weight_factors = weight_factors
29 | self.loss = loss
30 |
31 | def forward(self, x, y):
32 | assert isinstance(x, (tuple, list)), "x must be either tuple or list"
33 | assert isinstance(y, (tuple, list)), "y must be either tuple or list"
34 | if self.weight_factors is None:
35 | weights = [1] * len(x)
36 | else:
37 | weights = self.weight_factors
38 |
39 | l = weights[0] * self.loss(x[0], y[0])
40 | for i in range(1, len(x)):
41 | if weights[i] != 0:
42 | l += weights[i] * self.loss(x[i], y[i])
43 | return l
44 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/.DS_Store
--------------------------------------------------------------------------------
/nnunet/training/network_training/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/network_trainer.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/network_trainer.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/nnUNetTrainer.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/nnUNetTrainer.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/nnUNetTrainerCascadeFullRes.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/nnUNetTrainerCascadeFullRes.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/nnUNetTrainerV2.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/nnUNetTrainerV2.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/nnUNetTrainerV2_CascadeFullRes.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/nnUNetTrainerV2_CascadeFullRes.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/nnUNetTrainerV2_DDP.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/nnUNetTrainerV2_DDP.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/nnUNetTrainerV2_DP.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/nnUNetTrainerV2_DP.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/__pycache__/nnUNetTrainerV2_fp32.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/__pycache__/nnUNetTrainerV2_fp32.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/__pycache__/nnUNetTrainerV2BraTSRegions.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/__pycache__/nnUNetTrainerV2BraTSRegions.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/__pycache__/nnUNetTrainerV2BraTSRegions_moreDA.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/BraTS2020/__pycache__/nnUNetTrainerV2BraTSRegions_moreDA.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/MMS/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/MMS/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/MMS/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/MMS/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/MMS/__pycache__/nnUNetTrainerV2_MMS.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/MMS/__pycache__/nnUNetTrainerV2_MMS.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/competitions_with_custom_Trainers/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/competitions_with_custom_Trainers/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNetTrainerV2_fp32.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_fp32(nnUNetTrainerV2):
20 | """
21 | Info for Fabian: same as internal nnUNetTrainerV2_2
22 | """
23 |
24 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
25 | unpack_data=True, deterministic=True, fp16=False):
26 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
27 | deterministic, False)
28 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/.DS_Store
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/__pycache__/nnUNetTrainerCE.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/__pycache__/nnUNetTrainerCE.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/__pycache__/nnUNetTrainerNoDA.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/__pycache__/nnUNetTrainerNoDA.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/.DS_Store
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_3ConvPerStage.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_3ConvPerStage.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_3ConvPerStage_samefilters.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_3ConvPerStage_samefilters.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_BN.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_BN.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_DenseUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_DenseUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_FRN.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_FRN.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GN.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GN.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GeLU.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GeLU.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericAttentionUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericAttentionUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericSingleAttentionUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericSingleAttentionUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericSpatialSingleAttentionUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericSpatialSingleAttentionUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericUNet_noDeepSupervision.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_GenericUNet_noDeepSupervision.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_InceptionUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_InceptionUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_LReLU_slope_2en1.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_LReLU_slope_2en1.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_Mish.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_Mish.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_NoNormalization.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_NoNormalization.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_NoNormalization_lr1en3.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_NoNormalization_lr1en3.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ReLU.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ReLU.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ReLU_biasInSegOutput.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ReLU_biasInSegOutput.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ReLU_convReLUIN.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ReLU_convReLUIN.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResencUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResencUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResencUNet_DA3.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResencUNet_DA3.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResencUNet_DA3_BN.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResencUNet_DA3_BN.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResidualAttentionUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResidualAttentionUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResidualUNet.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_ResidualUNet.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_noDeepSupervision.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/architectural_variants/__pycache__/nnUNetTrainerV2_noDeepSupervision.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_3ConvPerStage.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 |
21 |
22 | class nnUNetTrainerV2_3ConvPerStage(nnUNetTrainerV2):
23 | def initialize_network(self):
24 | self.base_num_features = 24 # otherwise we run out of VRAM
25 | if self.threeD:
26 | conv_op = nn.Conv3d
27 | dropout_op = nn.Dropout3d
28 | norm_op = nn.InstanceNorm3d
29 |
30 | else:
31 | conv_op = nn.Conv2d
32 | dropout_op = nn.Dropout2d
33 | norm_op = nn.InstanceNorm2d
34 |
35 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
36 | dropout_op_kwargs = {'p': 0, 'inplace': True}
37 | net_nonlin = nn.LeakyReLU
38 | net_nonlin_kwargs = {'negative_slope': 1e-2, 'inplace': True}
39 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
40 | len(self.net_num_pool_op_kernel_sizes),
41 | 3, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
42 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(1e-2),
43 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True)
44 | if torch.cuda.is_available():
45 | self.network.cuda()
46 | self.network.inference_apply_nonlin = softmax_helper
47 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_3ConvPerStage_samefilters.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 |
21 |
22 | class nnUNetTrainerV2_3ConvPerStageSameFilters(nnUNetTrainerV2):
23 | def initialize_network(self):
24 | if self.threeD:
25 | conv_op = nn.Conv3d
26 | dropout_op = nn.Dropout3d
27 | norm_op = nn.InstanceNorm3d
28 |
29 | else:
30 | conv_op = nn.Conv2d
31 | dropout_op = nn.Dropout2d
32 | norm_op = nn.InstanceNorm2d
33 |
34 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
35 | dropout_op_kwargs = {'p': 0, 'inplace': True}
36 | net_nonlin = nn.LeakyReLU
37 | net_nonlin_kwargs = {'negative_slope': 1e-2, 'inplace': True}
38 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
39 | len(self.net_num_pool_op_kernel_sizes),
40 | 3, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
41 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(1e-2),
42 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True)
43 | if torch.cuda.is_available():
44 | self.network.cuda()
45 | self.network.inference_apply_nonlin = softmax_helper
46 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_FRN.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.network_architecture.custom_modules.feature_response_normalization import FRN3D
17 | from nnunet.network_architecture.generic_UNet import Generic_UNet
18 | from nnunet.network_architecture.initialization import InitWeights_He
19 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
20 | from nnunet.utilities.nd_softmax import softmax_helper
21 | from torch import nn
22 | from nnunet.network_architecture.custom_modules.helperModules import Identity
23 | import torch
24 |
25 |
26 | class nnUNetTrainerV2_FRN(nnUNetTrainerV2):
27 | def initialize_network(self):
28 | """
29 | changed deep supervision to False
30 | :return:
31 | """
32 | if self.threeD:
33 | conv_op = nn.Conv3d
34 | dropout_op = nn.Dropout3d
35 | norm_op = FRN3D
36 |
37 | else:
38 | conv_op = nn.Conv2d
39 | dropout_op = nn.Dropout2d
40 | raise NotImplementedError
41 | norm_op = nn.BatchNorm2d
42 |
43 | norm_op_kwargs = {'eps': 1e-6}
44 | dropout_op_kwargs = {'p': 0, 'inplace': True}
45 | net_nonlin = Identity
46 | net_nonlin_kwargs = {}
47 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
48 | len(self.net_num_pool_op_kernel_sizes),
49 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
50 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(1e-2),
51 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True)
52 | if torch.cuda.is_available():
53 | self.network.cuda()
54 | self.network.inference_apply_nonlin = softmax_helper
55 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_GN.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.network_architecture.custom_modules.helperModules import MyGroupNorm
19 | from nnunet.utilities.nd_softmax import softmax_helper
20 | from torch import nn
21 |
22 |
23 | class nnUNetTrainerV2_GN(nnUNetTrainerV2):
24 | def initialize_network(self):
25 | """
26 | changed deep supervision to False
27 | :return:
28 | """
29 | if self.threeD:
30 | conv_op = nn.Conv3d
31 | dropout_op = nn.Dropout3d
32 | norm_op = MyGroupNorm
33 |
34 | else:
35 | conv_op = nn.Conv2d
36 | dropout_op = nn.Dropout2d
37 | norm_op = MyGroupNorm
38 |
39 | norm_op_kwargs = {'eps': 1e-5, 'affine': True, 'num_groups': 8}
40 | dropout_op_kwargs = {'p': 0, 'inplace': True}
41 | net_nonlin = nn.LeakyReLU
42 | net_nonlin_kwargs = {'negative_slope': 1e-2, 'inplace': True}
43 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
44 | len(self.net_num_pool_op_kernel_sizes),
45 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
46 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(1e-2),
47 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True)
48 | if torch.cuda.is_available():
49 | self.network.cuda()
50 | self.network.inference_apply_nonlin = softmax_helper
51 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_LReLU_slope_2en1.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 |
21 |
22 | class nnUNetTrainerV2_LReLU_slope_2en1(nnUNetTrainerV2):
23 | def initialize_network(self):
24 | if self.threeD:
25 | conv_op = nn.Conv3d
26 | dropout_op = nn.Dropout3d
27 | norm_op = nn.InstanceNorm3d
28 |
29 | else:
30 | conv_op = nn.Conv2d
31 | dropout_op = nn.Dropout2d
32 | norm_op = nn.InstanceNorm2d
33 |
34 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
35 | dropout_op_kwargs = {'p': 0, 'inplace': True}
36 | net_nonlin = nn.LeakyReLU
37 | net_nonlin_kwargs = {'inplace': True, 'negative_slope': 2e-1}
38 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
39 | len(self.net_num_pool_op_kernel_sizes),
40 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
41 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(0),
42 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True)
43 | if torch.cuda.is_available():
44 | self.network.cuda()
45 | self.network.inference_apply_nonlin = softmax_helper
46 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_Mish.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 | from nnunet.network_architecture.custom_modules.mish import Mish
21 |
22 |
23 | class nnUNetTrainerV2_Mish(nnUNetTrainerV2):
24 | def initialize_network(self):
25 | if self.threeD:
26 | conv_op = nn.Conv3d
27 | dropout_op = nn.Dropout3d
28 | norm_op = nn.InstanceNorm3d
29 |
30 | else:
31 | conv_op = nn.Conv2d
32 | dropout_op = nn.Dropout2d
33 | norm_op = nn.InstanceNorm2d
34 |
35 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
36 | dropout_op_kwargs = {'p': 0, 'inplace': True}
37 | net_nonlin = Mish
38 | net_nonlin_kwargs = {}
39 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
40 | len(self.net_num_pool_op_kernel_sizes),
41 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
42 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(0),
43 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True)
44 | if torch.cuda.is_available():
45 | self.network.cuda()
46 | self.network.inference_apply_nonlin = softmax_helper
47 |
48 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_NoNormalization.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.network_architecture.custom_modules.helperModules import Identity
19 | from nnunet.utilities.nd_softmax import softmax_helper
20 | from torch import nn
21 |
22 |
23 | class nnUNetTrainerV2_NoNormalization(nnUNetTrainerV2):
24 | def initialize_network(self):
25 | if self.threeD:
26 | conv_op = nn.Conv3d
27 | dropout_op = nn.Dropout3d
28 | norm_op = Identity
29 |
30 | else:
31 | conv_op = nn.Conv2d
32 | dropout_op = nn.Dropout2d
33 | norm_op = Identity
34 |
35 | norm_op_kwargs = {}
36 | dropout_op_kwargs = {'p': 0, 'inplace': True}
37 | net_nonlin = nn.LeakyReLU
38 | net_nonlin_kwargs = {'negative_slope': 1e-2, 'inplace': True}
39 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
40 | len(self.net_num_pool_op_kernel_sizes),
41 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
42 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(1e-2),
43 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True)
44 | if torch.cuda.is_available():
45 | self.network.cuda()
46 | self.network.inference_apply_nonlin = softmax_helper
47 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_NoNormalization_lr1en3.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNet_variants.architectural_variants.nnUNetTrainerV2_NoNormalization import \
17 | nnUNetTrainerV2_NoNormalization
18 |
19 |
20 | class nnUNetTrainerV2_NoNormalization_lr1en3(nnUNetTrainerV2_NoNormalization):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.initial_lr = 1e-3
26 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_ReLU.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 |
21 |
22 | class nnUNetTrainerV2_ReLU(nnUNetTrainerV2):
23 | def initialize_network(self):
24 | if self.threeD:
25 | conv_op = nn.Conv3d
26 | dropout_op = nn.Dropout3d
27 | norm_op = nn.InstanceNorm3d
28 |
29 | else:
30 | conv_op = nn.Conv2d
31 | dropout_op = nn.Dropout2d
32 | norm_op = nn.InstanceNorm2d
33 |
34 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
35 | dropout_op_kwargs = {'p': 0, 'inplace': True}
36 | net_nonlin = nn.ReLU
37 | net_nonlin_kwargs = {'inplace': True}
38 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
39 | len(self.net_num_pool_op_kernel_sizes),
40 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
41 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(0),
42 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True)
43 | if torch.cuda.is_available():
44 | self.network.cuda()
45 | self.network.inference_apply_nonlin = softmax_helper
46 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_ReLU_biasInSegOutput.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 |
21 |
22 | class nnUNetTrainerV2_ReLU_biasInSegOutput(nnUNetTrainerV2):
23 | def initialize_network(self):
24 | if self.threeD:
25 | conv_op = nn.Conv3d
26 | dropout_op = nn.Dropout3d
27 | norm_op = nn.InstanceNorm3d
28 |
29 | else:
30 | conv_op = nn.Conv2d
31 | dropout_op = nn.Dropout2d
32 | norm_op = nn.InstanceNorm2d
33 |
34 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
35 | dropout_op_kwargs = {'p': 0, 'inplace': True}
36 | net_nonlin = nn.ReLU
37 | net_nonlin_kwargs = {'inplace': True}
38 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
39 | len(self.net_num_pool_op_kernel_sizes),
40 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
41 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(0),
42 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True,
43 | seg_output_use_bias=True)
44 | if torch.cuda.is_available():
45 | self.network.cuda()
46 | self.network.inference_apply_nonlin = softmax_helper
47 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_ReLU_convReLUIN.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet, ConvDropoutNonlinNorm
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 |
21 |
22 | class nnUNetTrainerV2_ReLU_convReLUIN(nnUNetTrainerV2):
23 | def initialize_network(self):
24 | if self.threeD:
25 | conv_op = nn.Conv3d
26 | dropout_op = nn.Dropout3d
27 | norm_op = nn.InstanceNorm3d
28 |
29 | else:
30 | conv_op = nn.Conv2d
31 | dropout_op = nn.Dropout2d
32 | norm_op = nn.InstanceNorm2d
33 |
34 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
35 | dropout_op_kwargs = {'p': 0, 'inplace': True}
36 | net_nonlin = nn.ReLU
37 | net_nonlin_kwargs = {'inplace': True}
38 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
39 | len(self.net_num_pool_op_kernel_sizes),
40 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
41 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(0),
42 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True,
43 | basic_block=ConvDropoutNonlinNorm)
44 | if torch.cuda.is_available():
45 | self.network.cuda()
46 | self.network.inference_apply_nonlin = softmax_helper
47 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_ResencUNet_DA3_BN.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import torch
16 |
17 | from nnunet.network_architecture.generic_modular_residual_UNet import FabiansUNet, get_default_network_config
18 | from nnunet.network_architecture.initialization import InitWeights_He
19 | from nnunet.training.network_training.nnUNet_variants.architectural_variants.nnUNetTrainerV2_ResencUNet_DA3 import \
20 | nnUNetTrainerV2_ResencUNet_DA3
21 | from nnunet.utilities.nd_softmax import softmax_helper
22 |
23 |
24 | class nnUNetTrainerV2_ResencUNet_DA3_BN(nnUNetTrainerV2_ResencUNet_DA3):
25 | def initialize_network(self):
26 | if self.threeD:
27 | cfg = get_default_network_config(3, None, norm_type="bn")
28 |
29 | else:
30 | cfg = get_default_network_config(1, None, norm_type="bn")
31 |
32 | stage_plans = self.plans['plans_per_stage'][self.stage]
33 | conv_kernel_sizes = stage_plans['conv_kernel_sizes']
34 | blocks_per_stage_encoder = stage_plans['num_blocks_encoder']
35 | blocks_per_stage_decoder = stage_plans['num_blocks_decoder']
36 | pool_op_kernel_sizes = stage_plans['pool_op_kernel_sizes']
37 |
38 | self.network = FabiansUNet(self.num_input_channels, self.base_num_features, blocks_per_stage_encoder, 2,
39 | pool_op_kernel_sizes, conv_kernel_sizes, cfg, self.num_classes,
40 | blocks_per_stage_decoder, True, False, 320, InitWeights_He(1e-2))
41 |
42 | if torch.cuda.is_available():
43 | self.network.cuda()
44 | self.network.inference_apply_nonlin = softmax_helper
45 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_lReLU_biasInSegOutput.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 |
21 |
22 | class nnUNetTrainerV2_lReLU_biasInSegOutput(nnUNetTrainerV2):
23 | def initialize_network(self):
24 | if self.threeD:
25 | conv_op = nn.Conv3d
26 | dropout_op = nn.Dropout3d
27 | norm_op = nn.InstanceNorm3d
28 |
29 | else:
30 | conv_op = nn.Conv2d
31 | dropout_op = nn.Dropout2d
32 | norm_op = nn.InstanceNorm2d
33 |
34 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
35 | dropout_op_kwargs = {'p': 0, 'inplace': True}
36 | net_nonlin = nn.LeakyReLU
37 | net_nonlin_kwargs = {'negative_slope': 1e-2, 'inplace': True}
38 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
39 | len(self.net_num_pool_op_kernel_sizes),
40 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
41 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(0),
42 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True,
43 | seg_output_use_bias=True)
44 | if torch.cuda.is_available():
45 | self.network.cuda()
46 | self.network.inference_apply_nonlin = softmax_helper
47 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/architectural_variants/nnUNetTrainerV2_lReLU_convlReLUIN.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import torch
15 | from nnunet.network_architecture.generic_UNet import Generic_UNet, ConvDropoutNonlinNorm
16 | from nnunet.network_architecture.initialization import InitWeights_He
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 | from torch import nn
20 |
21 |
22 | class nnUNetTrainerV2_lReLU_convReLUIN(nnUNetTrainerV2):
23 | def initialize_network(self):
24 | if self.threeD:
25 | conv_op = nn.Conv3d
26 | dropout_op = nn.Dropout3d
27 | norm_op = nn.InstanceNorm3d
28 |
29 | else:
30 | conv_op = nn.Conv2d
31 | dropout_op = nn.Dropout2d
32 | norm_op = nn.InstanceNorm2d
33 |
34 | norm_op_kwargs = {'eps': 1e-5, 'affine': True}
35 | dropout_op_kwargs = {'p': 0, 'inplace': True}
36 | net_nonlin = nn.LeakyReLU
37 | net_nonlin_kwargs = {'inplace': True, 'negative_slope': 1e-2}
38 | self.network = Generic_UNet(self.num_input_channels, self.base_num_features, self.num_classes,
39 | len(self.net_num_pool_op_kernel_sizes),
40 | self.conv_per_stage, 2, conv_op, norm_op, norm_op_kwargs, dropout_op, dropout_op_kwargs,
41 | net_nonlin, net_nonlin_kwargs, True, False, lambda x: x, InitWeights_He(1e-2),
42 | self.net_num_pool_op_kernel_sizes, self.net_conv_kernel_sizes, False, True, True,
43 | basic_block=ConvDropoutNonlinNorm)
44 | if torch.cuda.is_available():
45 | self.network.cuda()
46 | self.network.inference_apply_nonlin = softmax_helper
47 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/benchmarking/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/benchmarking/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/cascade/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/cascade/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/cascade/nnUNetTrainerV2CascadeFullRes_lowerLR.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2_CascadeFullRes import nnUNetTrainerV2CascadeFullRes
17 |
18 |
19 | class nnUNetTrainerV2CascadeFullRes_lowerLR(nnUNetTrainerV2CascadeFullRes):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, previous_trainer="nnUNetTrainerV2", fp16=False):
22 | super().__init__(plans_file, fold, output_folder, dataset_directory,
23 | batch_dice, stage, unpack_data, deterministic,
24 | previous_trainer, fp16)
25 | self.initial_lr = 1e-3
26 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/cascade/nnUNetTrainerV2CascadeFullRes_shorter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2_CascadeFullRes import nnUNetTrainerV2CascadeFullRes
17 |
18 |
19 | class nnUNetTrainerV2CascadeFullRes_shorter(nnUNetTrainerV2CascadeFullRes):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, previous_trainer="nnUNetTrainerV2", fp16=False):
22 | super().__init__(plans_file, fold, output_folder, dataset_directory,
23 | batch_dice, stage, unpack_data, deterministic,
24 | previous_trainer, fp16)
25 | self.max_num_epochs = 500
26 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/cascade/nnUNetTrainerV2CascadeFullRes_shorter_lowerLR.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2_CascadeFullRes import nnUNetTrainerV2CascadeFullRes
17 |
18 |
19 | class nnUNetTrainerV2CascadeFullRes_shorter_lowerLR(nnUNetTrainerV2CascadeFullRes):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, previous_trainer="nnUNetTrainerV2", fp16=False):
22 | super().__init__(plans_file, fold, output_folder, dataset_directory,
23 | batch_dice, stage, unpack_data, deterministic,
24 | previous_trainer, fp16)
25 | self.max_num_epochs = 500
26 | self.initial_lr = 1e-3
27 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/copies/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/copies/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/data_augmentation/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/data_augmentation/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/data_augmentation/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/data_augmentation/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/data_augmentation/__pycache__/nnUNetTrainerV2_DA3.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/data_augmentation/__pycache__/nnUNetTrainerV2_DA3.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/data_augmentation/__pycache__/nnUNetTrainerV2_insaneDA.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/data_augmentation/__pycache__/nnUNetTrainerV2_insaneDA.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/data_augmentation/nnUNetTrainerV2_DA2.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_DA2(nnUNetTrainerV2):
20 | def setup_DA_params(self):
21 | super().setup_DA_params()
22 |
23 | self.data_aug_params["independent_scale_factor_for_each_axis"] = True
24 |
25 | if self.threeD:
26 | self.data_aug_params["rotation_p_per_axis"] = 0.5
27 | else:
28 | self.data_aug_params["rotation_p_per_axis"] = 1
29 |
30 | self.data_aug_params["do_additive_brightness"] = True
31 |
32 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/data_augmentation/nnUNetTrainerV2_independentScalePerAxis.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_independentScalePerAxis(nnUNetTrainerV2):
20 | def setup_DA_params(self):
21 | super().setup_DA_params()
22 | self.data_aug_params["independent_scale_factor_for_each_axis"] = True
23 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/data_augmentation/nnUNetTrainerV2_noMirroring.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_noMirroring(nnUNetTrainerV2):
20 | def validate(self, do_mirroring: bool = True, use_sliding_window: bool = True,
21 | step_size: float = 0.5, save_softmax: bool = True, use_gaussian: bool = True, overwrite: bool = True,
22 | validation_folder_name: str = 'validation_raw', debug: bool = False, all_in_gpu: bool = False,
23 | segmentation_export_kwargs: dict = None, run_postprocessing_on_folds: bool = True):
24 | """
25 | We need to wrap this because we need to enforce self.network.do_ds = False for prediction
26 | """
27 | ds = self.network.do_ds
28 | if do_mirroring:
29 | print("WARNING! do_mirroring was True but we cannot do that because we trained without mirroring. "
30 | "do_mirroring was set to False")
31 | do_mirroring = False
32 | self.network.do_ds = False
33 | ret = super().validate(do_mirroring=do_mirroring, use_sliding_window=use_sliding_window, step_size=step_size,
34 | save_softmax=save_softmax, use_gaussian=use_gaussian,
35 | overwrite=overwrite, validation_folder_name=validation_folder_name, debug=debug,
36 | all_in_gpu=all_in_gpu, segmentation_export_kwargs=segmentation_export_kwargs,
37 | run_postprocessing_on_folds=run_postprocessing_on_folds)
38 | self.network.do_ds = ds
39 | return ret
40 |
41 | def setup_DA_params(self):
42 | super().setup_DA_params()
43 | self.data_aug_params["do_mirror"] = False
44 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/loss_function/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_ForceBD.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_ForceBD(nnUNetTrainerV2):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, fp16=False):
22 | batch_dice = True
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_ForceSD.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_ForceSD(nnUNetTrainerV2):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, fp16=False):
22 | batch_dice = False
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_CE.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | from nnunet.training.loss_functions.crossentropy import RobustCrossEntropyLoss
15 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
16 |
17 |
18 | class nnUNetTrainerV2_Loss_CE(nnUNetTrainerV2):
19 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
20 | unpack_data=True, deterministic=True, fp16=False):
21 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
22 | deterministic, fp16)
23 | self.loss = RobustCrossEntropyLoss()
24 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_CEGDL.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.loss_functions.dice_loss import GDL_and_CE_loss
18 |
19 |
20 | class nnUNetTrainerV2_Loss_CEGDL(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.loss = GDL_and_CE_loss({'batch_dice': self.batch_dice, 'smooth': 1e-5, 'do_bg': False}, {})
26 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_Dice.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.loss_functions.dice_loss import SoftDiceLoss
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 |
20 |
21 | class nnUNetTrainerV2_Loss_Dice(nnUNetTrainerV2):
22 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
23 | unpack_data=True, deterministic=True, fp16=False):
24 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
25 | deterministic, fp16)
26 | self.loss = SoftDiceLoss(**{'apply_nonlin': softmax_helper, 'batch_dice': self.batch_dice, 'smooth': 1e-5, 'do_bg': False})
27 |
28 |
29 | class nnUNetTrainerV2_Loss_DicewithBG(nnUNetTrainerV2):
30 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
31 | unpack_data=True, deterministic=True, fp16=False):
32 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
33 | deterministic, fp16)
34 | self.loss = SoftDiceLoss(**{'apply_nonlin': softmax_helper, 'batch_dice': self.batch_dice, 'smooth': 1e-5, 'do_bg': True})
35 |
36 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_DiceCE_noSmooth.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.loss_functions.dice_loss import SoftDiceLoss, DC_and_CE_loss
18 |
19 |
20 | class nnUNetTrainerV2_Loss_DiceCE_noSmooth(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.loss = DC_and_CE_loss({'batch_dice': self.batch_dice, 'smooth': 0, 'do_bg': False}, {})
26 |
27 |
28 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_DiceTopK10.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.loss_functions.dice_loss import DC_and_topk_loss
18 |
19 |
20 | class nnUNetTrainerV2_Loss_DiceTopK10(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.loss = DC_and_topk_loss({'batch_dice': self.batch_dice, 'smooth': 1e-5, 'do_bg': False},
26 | {'k': 10})
27 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_Dice_lr1en3.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNet_variants.loss_function.nnUNetTrainerV2_Loss_Dice import \
17 | nnUNetTrainerV2_Loss_Dice, nnUNetTrainerV2_Loss_DicewithBG
18 |
19 |
20 | class nnUNetTrainerV2_Loss_Dice_LR1en3(nnUNetTrainerV2_Loss_Dice):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.initial_lr = 1e-3
26 |
27 |
28 | class nnUNetTrainerV2_Loss_DicewithBG_LR1en3(nnUNetTrainerV2_Loss_DicewithBG):
29 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
30 | unpack_data=True, deterministic=True, fp16=False):
31 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
32 | deterministic, fp16)
33 | self.initial_lr = 1e-3
34 |
35 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_Dice_squared.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.loss_functions.dice_loss import SoftDiceLossSquared
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 |
20 |
21 | class nnUNetTrainerV2_Loss_Dice_squared(nnUNetTrainerV2):
22 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
23 | unpack_data=True, deterministic=True, fp16=False):
24 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
25 | deterministic, fp16)
26 | self.initial_lr = 1e-3
27 | self.loss = SoftDiceLossSquared(**{'apply_nonlin': softmax_helper, 'batch_dice': self.batch_dice, 'smooth': 1e-5, 'do_bg': False})
28 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_MCC.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.loss_functions.dice_loss import MCCLoss
18 | from nnunet.utilities.nd_softmax import softmax_helper
19 |
20 |
21 | class nnUNetTrainerV2_Loss_MCC(nnUNetTrainerV2):
22 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
23 | unpack_data=True, deterministic=True, fp16=False):
24 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
25 | deterministic, fp16)
26 | self.initial_lr = 1e-3
27 | self.loss = MCCLoss(apply_nonlin=softmax_helper, batch_mcc=self.batch_dice, do_bg=True, smooth=0.0)
28 |
29 |
30 | class nnUNetTrainerV2_Loss_MCCnoBG(nnUNetTrainerV2):
31 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
32 | unpack_data=True, deterministic=True, fp16=False):
33 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
34 | deterministic, fp16)
35 | self.initial_lr = 1e-3
36 | self.loss = MCCLoss(apply_nonlin=softmax_helper, batch_mcc=self.batch_dice, do_bg=False, smooth=0.0)
37 |
38 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_Loss_TopK10.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.loss_functions.TopK_loss import TopKLoss
18 |
19 |
20 | class nnUNetTrainerV2_Loss_TopK10(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.loss = TopKLoss(k=10)
26 |
27 |
28 | nnUNetTrainerV2_Loss_TopK10_copy1 = nnUNetTrainerV2_Loss_TopK10
29 | nnUNetTrainerV2_Loss_TopK10_copy2 = nnUNetTrainerV2_Loss_TopK10
30 | nnUNetTrainerV2_Loss_TopK10_copy3 = nnUNetTrainerV2_Loss_TopK10
31 | nnUNetTrainerV2_Loss_TopK10_copy4 = nnUNetTrainerV2_Loss_TopK10
32 |
33 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/loss_function/nnUNetTrainerV2_focalLoss.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | from nnunet.training.loss_functions.focal_loss import FocalLossV2
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from torch import nn
18 |
19 |
20 | class nnUNetTrainerV2_SegLoss_Focal(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage,
24 | unpack_data, deterministic, fp16)
25 | print("Setting up self.loss = Focal_loss({'alpha':0.75, 'gamma':2, 'smooth':1e-5})")
26 | self.loss = FocalLossV2(apply_nonlin=nn.Softmax(dim=1), **{'alpha':0.5, 'gamma':2, 'smooth':1e-5})
27 |
28 |
29 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/miscellaneous/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/miscellaneous/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/nnUNetTrainerCE.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | from nnunet.training.loss_functions.crossentropy import RobustCrossEntropyLoss
15 | from nnunet.training.network_training.nnUNetTrainer import nnUNetTrainer
16 |
17 |
18 | class nnUNetTrainerCE(nnUNetTrainer):
19 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
20 | unpack_data=True, deterministic=True, fp16=False):
21 | super(nnUNetTrainerCE, self).__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage,
22 | unpack_data, deterministic, fp16)
23 | self.loss = RobustCrossEntropyLoss()
24 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_Adam.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | import torch
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 |
19 |
20 | class nnUNetTrainerV2_Adam(nnUNetTrainerV2):
21 |
22 | def initialize_optimizer_and_scheduler(self):
23 | self.optimizer = torch.optim.Adam(self.network.parameters(), self.initial_lr, weight_decay=self.weight_decay, amsgrad=True)
24 | self.lr_scheduler = None
25 |
26 |
27 | nnUNetTrainerV2_Adam_copy1 = nnUNetTrainerV2_Adam
28 | nnUNetTrainerV2_Adam_copy2 = nnUNetTrainerV2_Adam
29 | nnUNetTrainerV2_Adam_copy3 = nnUNetTrainerV2_Adam
30 | nnUNetTrainerV2_Adam_copy4 = nnUNetTrainerV2_Adam
31 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_Adam_lr_3en4.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNet_variants.optimizer_and_lr.nnUNetTrainerV2_Adam import nnUNetTrainerV2_Adam
17 |
18 |
19 | class nnUNetTrainerV2_Adam_nnUNetTrainerlr(nnUNetTrainerV2_Adam):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, fp16=False):
22 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
23 | deterministic, fp16)
24 | self.initial_lr = 3e-4
25 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_Ranger_lr1en2.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.optimizer.ranger import Ranger
18 |
19 |
20 | class nnUNetTrainerV2_Ranger_lr1en2(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.initial_lr = 1e-2
26 |
27 | def initialize_optimizer_and_scheduler(self):
28 | self.optimizer = Ranger(self.network.parameters(), self.initial_lr, k=6, N_sma_threshhold=5,
29 | weight_decay=self.weight_decay)
30 | self.lr_scheduler = None
31 |
32 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_Ranger_lr3en3.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.optimizer.ranger import Ranger
18 |
19 |
20 | class nnUNetTrainerV2_Ranger_lr3en3(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.initial_lr = 3e-3
26 |
27 | def initialize_optimizer_and_scheduler(self):
28 | self.optimizer = Ranger(self.network.parameters(), self.initial_lr, k=6, N_sma_threshhold=5,
29 | weight_decay=self.weight_decay)
30 | self.lr_scheduler = None
31 |
32 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_Ranger_lr3en4.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 | from nnunet.training.optimizer.ranger import Ranger
18 |
19 |
20 | class nnUNetTrainerV2_Ranger_lr3en4(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 | self.initial_lr = 3e-4
26 |
27 | def initialize_optimizer_and_scheduler(self):
28 | self.optimizer = Ranger(self.network.parameters(), self.initial_lr, k=6, N_sma_threshhold=5,
29 | weight_decay=self.weight_decay)
30 | self.lr_scheduler = None
31 |
32 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_SGD_fixedSchedule.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_SGD_fixedSchedule(nnUNetTrainerV2):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, fp16=False):
22 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
23 | deterministic, fp16)
24 |
25 | def maybe_update_lr(self, epoch=None):
26 | if epoch is None:
27 | ep = self.epoch + 1
28 | else:
29 | ep = epoch
30 |
31 | if 0 <= ep < 500:
32 | new_lr = self.initial_lr
33 | elif 500 <= ep < 675:
34 | new_lr = self.initial_lr * 0.1
35 | elif 675 <= ep < 850:
36 | new_lr = self.initial_lr * 0.01
37 | elif ep >= 850:
38 | new_lr = self.initial_lr * 0.001
39 | else:
40 | raise RuntimeError("Really unexpected things happened, ep=%d" % ep)
41 |
42 | self.optimizer.param_groups[0]['lr'] = new_lr
43 | self.print_to_log_file("lr:", self.optimizer.param_groups[0]['lr'])
44 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_SGD_fixedSchedule2.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.learning_rate.poly_lr import poly_lr
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 |
19 |
20 | class nnUNetTrainerV2_SGD_fixedSchedule2(nnUNetTrainerV2):
21 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
22 | unpack_data=True, deterministic=True, fp16=False):
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 |
26 | def maybe_update_lr(self, epoch=None):
27 | """
28 | here we go one step, then use polyLR
29 | :param epoch:
30 | :return:
31 | """
32 | if epoch is None:
33 | ep = self.epoch + 1
34 | else:
35 | ep = epoch
36 |
37 | if 0 <= ep < 500:
38 | new_lr = self.initial_lr
39 | elif 500 <= ep < 675:
40 | new_lr = self.initial_lr * 0.1
41 | elif ep >= 675:
42 | new_lr = poly_lr(ep - 675, self.max_num_epochs - 675, self.initial_lr * 0.1, 0.9)
43 | else:
44 | raise RuntimeError("Really unexpected things happened, ep=%d" % ep)
45 |
46 | self.optimizer.param_groups[0]['lr'] = new_lr
47 | self.print_to_log_file("lr:", self.optimizer.param_groups[0]['lr'])
48 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_SGD_lrs.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_SGD_lr1en1(nnUNetTrainerV2):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, fp16=False):
22 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
23 | deterministic, fp16)
24 | self.initial_lr = 1e-1
25 |
26 |
27 | class nnUNetTrainerV2_SGD_lr1en3(nnUNetTrainerV2):
28 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
29 | unpack_data=True, deterministic=True, fp16=False):
30 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
31 | deterministic, fp16)
32 | self.initial_lr = 1e-3
33 |
34 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_fp16.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_fp16(nnUNetTrainerV2):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, fp16=False):
22 | assert fp16, "This one only accepts fp16=True"
23 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
24 | deterministic, fp16)
25 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_momentum09.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | import torch
17 |
18 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
19 |
20 |
21 | class nnUNetTrainerV2_momentum09(nnUNetTrainerV2):
22 | def initialize_optimizer_and_scheduler(self):
23 | assert self.network is not None, "self.initialize_network must be called first"
24 | self.optimizer = torch.optim.SGD(self.network.parameters(), self.initial_lr, weight_decay=self.weight_decay,
25 | momentum=0.9, nesterov=True)
26 | self.lr_scheduler = None
27 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_momentum095.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | import torch
17 |
18 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
19 |
20 |
21 | class nnUNetTrainerV2_momentum095(nnUNetTrainerV2):
22 | def initialize_optimizer_and_scheduler(self):
23 | assert self.network is not None, "self.initialize_network must be called first"
24 | self.optimizer = torch.optim.SGD(self.network.parameters(), self.initial_lr, weight_decay=self.weight_decay,
25 | momentum=0.95, nesterov=True)
26 | self.lr_scheduler = None
27 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_momentum098.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | import torch
17 |
18 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
19 |
20 |
21 | class nnUNetTrainerV2_momentum098(nnUNetTrainerV2):
22 | def initialize_optimizer_and_scheduler(self):
23 | assert self.network is not None, "self.initialize_network must be called first"
24 | self.optimizer = torch.optim.SGD(self.network.parameters(), self.initial_lr, weight_decay=self.weight_decay,
25 | momentum=0.98, nesterov=True)
26 | self.lr_scheduler = None
27 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_momentum09in2D.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | import torch
17 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
18 |
19 |
20 | class nnUNetTrainerV2_momentum09in2D(nnUNetTrainerV2):
21 | def initialize_optimizer_and_scheduler(self):
22 | if self.threeD:
23 | momentum = 0.99
24 | else:
25 | momentum = 0.9
26 | assert self.network is not None, "self.initialize_network must be called first"
27 | self.optimizer = torch.optim.SGD(self.network.parameters(), self.initial_lr, weight_decay=self.weight_decay,
28 | momentum=momentum, nesterov=True)
29 | self.lr_scheduler = None
30 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_reduceMomentumDuringTraining.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | import torch
17 |
18 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
19 |
20 |
21 | class nnUNetTrainerV2_reduceMomentumDuringTraining(nnUNetTrainerV2):
22 | """
23 | This implementation will not work with LR scheduler!!!!!!!!!!
24 |
25 | After epoch 800, linearly decrease momentum from 0.99 to 0.9
26 | """
27 | def initialize_optimizer_and_scheduler(self):
28 | current_momentum = 0.99
29 | min_momentum = 0.9
30 |
31 | if self.epoch > 800:
32 | current_momentum = current_momentum - (current_momentum - min_momentum) / 200 * (self.epoch - 800)
33 |
34 | self.print_to_log_file("current momentum", current_momentum)
35 | assert self.network is not None, "self.initialize_network must be called first"
36 | if self.optimizer is None:
37 | self.optimizer = torch.optim.SGD(self.network.parameters(), self.initial_lr, weight_decay=self.weight_decay,
38 | momentum=0.99, nesterov=True)
39 | else:
40 | # can't reinstantiate because that would break NVIDIA AMP
41 | self.optimizer.param_groups[0]["momentum"] = current_momentum
42 | self.lr_scheduler = None
43 |
44 | def on_epoch_end(self):
45 | self.initialize_optimizer_and_scheduler()
46 | return super().on_epoch_end()
47 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/optimizer_and_lr/nnUNetTrainerV2_warmup.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from nnunet.training.network_training.nnUNetTrainerV2 import nnUNetTrainerV2
17 |
18 |
19 | class nnUNetTrainerV2_warmup(nnUNetTrainerV2):
20 | def __init__(self, plans_file, fold, output_folder=None, dataset_directory=None, batch_dice=True, stage=None,
21 | unpack_data=True, deterministic=True, fp16=False):
22 | super().__init__(plans_file, fold, output_folder, dataset_directory, batch_dice, stage, unpack_data,
23 | deterministic, fp16)
24 | self.max_num_epochs = 1050
25 |
26 | def maybe_update_lr(self, epoch=None):
27 | if self.epoch < 50:
28 | # epoch 49 is max
29 | # we increase lr linearly from 0 to initial_lr
30 | lr = (self.epoch + 1) / 50 * self.initial_lr
31 | self.optimizer.param_groups[0]['lr'] = lr
32 | self.print_to_log_file("epoch:", self.epoch, "lr:", lr)
33 | else:
34 | if epoch is not None:
35 | ep = epoch - 49
36 | else:
37 | ep = self.epoch - 49
38 | assert ep > 0, "epoch must be >0"
39 | return super().maybe_update_lr(ep)
40 |
--------------------------------------------------------------------------------
/nnunet/training/network_training/nnUNet_variants/resampling/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/network_training/nnUNet_variants/resampling/__init__.py
--------------------------------------------------------------------------------
/nnunet/training/optimizer/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/training/optimizer/__init__.py
--------------------------------------------------------------------------------
/nnunet/utilities/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | from . import *
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/distributed.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/distributed.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/file_endings.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/file_endings.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/nd_softmax.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/nd_softmax.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/one_hot_encoding.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/one_hot_encoding.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/random_stuff.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/random_stuff.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/sitk_stuff.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/sitk_stuff.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/task_name_id_conversion.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/task_name_id_conversion.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/tensor_utilities.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/tensor_utilities.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/__pycache__/to_torch.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niccolo246/Advanced_nnUNet/e41f881654fb2bdeffb24e539114e104b2419ff1/nnunet/utilities/__pycache__/to_torch.cpython-38.pyc
--------------------------------------------------------------------------------
/nnunet/utilities/file_endings.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from batchgenerators.utilities.file_and_folder_operations import *
17 |
18 |
19 | def remove_trailing_slash(filename: str):
20 | while filename.endswith('/'):
21 | filename = filename[:-1]
22 | return filename
23 |
24 |
25 | def maybe_add_0000_to_all_niigz(folder):
26 | nii_gz = subfiles(folder, suffix='.nii.gz')
27 | for n in nii_gz:
28 | n = remove_trailing_slash(n)
29 | if not n.endswith('_0000.nii.gz'):
30 | os.rename(n, n[:-7] + '_0000.nii.gz')
31 |
--------------------------------------------------------------------------------
/nnunet/utilities/folder_names.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from batchgenerators.utilities.file_and_folder_operations import *
17 | from nnunet.paths import network_training_output_dir
18 |
19 |
20 | def get_output_folder_name(model: str, task: str = None, trainer: str = None, plans: str = None, fold: int = None,
21 | overwrite_training_output_dir: str = None):
22 | """
23 | Retrieves the correct output directory for the nnU-Net model described by the input parameters
24 |
25 | :param model:
26 | :param task:
27 | :param trainer:
28 | :param plans:
29 | :param fold:
30 | :param overwrite_training_output_dir:
31 | :return:
32 | """
33 | assert model in ["2d", "3d_cascade_fullres", '3d_fullres', '3d_lowres']
34 |
35 | if overwrite_training_output_dir is not None:
36 | tr_dir = overwrite_training_output_dir
37 | else:
38 | tr_dir = network_training_output_dir
39 |
40 | current = join(tr_dir, model)
41 | if task is not None:
42 | current = join(current, task)
43 | if trainer is not None and plans is not None:
44 | current = join(current, trainer + "__" + plans)
45 | if fold is not None:
46 | current = join(current, "fold_%d" % fold)
47 | return current
48 |
--------------------------------------------------------------------------------
/nnunet/utilities/nd_softmax.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import torch
16 | from torch import nn
17 | import torch.nn.functional as F
18 |
19 |
20 | softmax_helper = lambda x: F.softmax(x, 1)
21 |
22 |
--------------------------------------------------------------------------------
/nnunet/utilities/one_hot_encoding.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import numpy as np
16 |
17 |
18 | def to_one_hot(seg, all_seg_labels=None):
19 | if all_seg_labels is None:
20 | all_seg_labels = np.unique(seg)
21 | result = np.zeros((len(all_seg_labels), *seg.shape), dtype=seg.dtype)
22 | for i, l in enumerate(all_seg_labels):
23 | result[i][seg == l] = 1
24 | return result
25 |
--------------------------------------------------------------------------------
/nnunet/utilities/random_stuff.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | class no_op(object):
17 | def __enter__(self):
18 | pass
19 |
20 | def __exit__(self, *args):
21 | pass
22 |
--------------------------------------------------------------------------------
/nnunet/utilities/recursive_delete_npz.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from batchgenerators.utilities.file_and_folder_operations import *
17 | import argparse
18 | import os
19 |
20 |
21 | def recursive_delete_npz(current_directory: str):
22 | npz_files = subfiles(current_directory, join=True, suffix=".npz")
23 | npz_files = [i for i in npz_files if not i.endswith("segFromPrevStage.npz")] # to be extra safe
24 | _ = [os.remove(i) for i in npz_files]
25 | for d in subdirs(current_directory, join=False):
26 | if d != "pred_next_stage":
27 | recursive_delete_npz(join(current_directory, d))
28 |
29 |
30 | if __name__ == "__main__":
31 | parser = argparse.ArgumentParser(usage="USE THIS RESPONSIBLY! DANGEROUS! I (Fabian) use this to remove npz files "
32 | "after I ran figure_out_what_to_submit")
33 | parser.add_argument("-f", help="folder", required=True)
34 |
35 | args = parser.parse_args()
36 |
37 | recursive_delete_npz(args.f)
38 |
--------------------------------------------------------------------------------
/nnunet/utilities/recursive_rename_taskXX_to_taskXXX.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | from batchgenerators.utilities.file_and_folder_operations import *
17 | import os
18 |
19 |
20 | def recursive_rename(folder):
21 | s = subdirs(folder, join=False)
22 | for ss in s:
23 | if ss.startswith("Task") and ss.find("_") == 6:
24 | task_id = int(ss[4:6])
25 | name = ss[7:]
26 | os.rename(join(folder, ss), join(folder, "Task%03.0d_" % task_id + name))
27 | s = subdirs(folder, join=True)
28 | for ss in s:
29 | recursive_rename(ss)
30 |
31 | if __name__ == "__main__":
32 | recursive_rename("/media/fabian/Results/nnUNet")
33 | recursive_rename("/media/fabian/nnunet")
34 | recursive_rename("/media/fabian/My Book/MedicalDecathlon")
35 | recursive_rename("/home/fabian/drives/datasets/nnUNet_raw")
36 | recursive_rename("/home/fabian/drives/datasets/nnUNet_preprocessed")
37 | recursive_rename("/home/fabian/drives/datasets/nnUNet_testSets")
38 | recursive_rename("/home/fabian/drives/datasets/results/nnUNet")
39 | recursive_rename("/home/fabian/drives/e230-dgx2-1-data_fabian/Decathlon_raw")
40 | recursive_rename("/home/fabian/drives/e230-dgx2-1-data_fabian/nnUNet_preprocessed")
41 |
42 |
--------------------------------------------------------------------------------
/nnunet/utilities/set_n_proc_DA.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | import subprocess
15 | import os
16 |
17 |
18 | def get_allowed_n_proc_DA():
19 | hostname = subprocess.getoutput(['hostname'])
20 |
21 | if 'nnUNet_n_proc_DA' in os.environ.keys():
22 | return int(os.environ['nnUNet_n_proc_DA'])
23 |
24 | if hostname in ['hdf19-gpu16', 'hdf19-gpu17', 'e230-AMDworkstation']:
25 | return 16
26 |
27 | if hostname in ['Fabian',]:
28 | return 12
29 |
30 | if hostname.startswith('hdf19-gpu') or hostname.startswith('e071-gpu'):
31 | return 12
32 | elif hostname.startswith('e230-dgx1'):
33 | return 10
34 | elif hostname.startswith('hdf18-gpu') or hostname.startswith('e132-comp'):
35 | return 16
36 | elif hostname.startswith('e230-dgx2'):
37 | return 6
38 | elif hostname.startswith('e230-dgxa100-'):
39 | return 32
40 | else:
41 | return None
--------------------------------------------------------------------------------
/nnunet/utilities/sitk_stuff.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 |
16 | import SimpleITK as sitk
17 |
18 |
19 | def copy_geometry(image: sitk.Image, ref: sitk.Image):
20 | image.SetOrigin(ref.GetOrigin())
21 | image.SetDirection(ref.GetDirection())
22 | image.SetSpacing(ref.GetSpacing())
23 | return image
24 |
--------------------------------------------------------------------------------
/nnunet/utilities/tensor_utilities.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import numpy as np
16 | import torch
17 | from torch import nn
18 |
19 |
20 | def sum_tensor(inp, axes, keepdim=False):
21 | axes = np.unique(axes).astype(int)
22 | if keepdim:
23 | for ax in axes:
24 | inp = inp.sum(int(ax), keepdim=True)
25 | else:
26 | for ax in sorted(axes, reverse=True):
27 | inp = inp.sum(int(ax))
28 | return inp
29 |
30 |
31 | def mean_tensor(inp, axes, keepdim=False):
32 | axes = np.unique(axes).astype(int)
33 | if keepdim:
34 | for ax in axes:
35 | inp = inp.mean(int(ax), keepdim=True)
36 | else:
37 | for ax in sorted(axes, reverse=True):
38 | inp = inp.mean(int(ax))
39 | return inp
40 |
41 |
42 | def flip(x, dim):
43 | """
44 | flips the tensor at dimension dim (mirroring!)
45 | :param x:
46 | :param dim:
47 | :return:
48 | """
49 | indices = [slice(None)] * x.dim()
50 | indices[dim] = torch.arange(x.size(dim) - 1, -1, -1,
51 | dtype=torch.long, device=x.device)
52 | return x[tuple(indices)]
53 |
54 |
55 |
--------------------------------------------------------------------------------
/nnunet/utilities/to_torch.py:
--------------------------------------------------------------------------------
1 | # Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import torch
16 |
17 |
18 | def maybe_to_torch(d):
19 | if isinstance(d, list):
20 | d = [maybe_to_torch(i) if not isinstance(i, torch.Tensor) else i for i in d]
21 | elif not isinstance(d, torch.Tensor):
22 | d = torch.from_numpy(d).float()
23 | return d
24 |
25 |
26 | def to_cuda(data, non_blocking=True, gpu_id=0):
27 | if isinstance(data, list):
28 | data = [i.cuda(gpu_id, non_blocking=non_blocking) for i in data]
29 | else:
30 | data = data.cuda(gpu_id, non_blocking=non_blocking)
31 | return data
32 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | [metadata]
2 | description-file = readme.md
--------------------------------------------------------------------------------