├── .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 | 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 | 12 | 13 | 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 --------------------------------------------------------------------------------