Amshaker / unetr_plus_plus

[IEEE TMI-2024] UNETR++: Delving into Efficient and Accurate 3D Medical Image Segmentation
Apache License 2.0
340 stars 32 forks source link

The Dice of BTras is different from the paper! #73

Closed SoloTillDawn closed 4 months ago

SoloTillDawn commented 4 months ago

Dear @Amshaker , (1)I have downloaded all the data sets and training plans you provided for Synapse, ACDC, Decathlon-Lung and BRaTs. The Dice of Synapse and ACDC differs from the paper by about 1%, but the Dice of brat is very low. I will paste my debug and Dice later, could you please solve my questions? Training is performed on a P40 graphics card (2)I debug the code in unetr_pp_traniner_Synapse.py, but I don't see self_embedding_dim, self_embedding_patch_size, and self_window_size used. Can I delete it? If yes, can you tell him to override the parameters there? Thank you very much. (3)In (2), there is also an argument self.num_heads=[6,12,24,48], but in network_architecture.synapse num_heads is an int variable, =4, Is self.num_heads=[6,12,24,48] valid? 1 debug.json

SoloTillDawn commented 4 months ago

Dear @Amshaker @mmaaz60 @AbdelrahmanShakerYousef (1)I looked at you and it seems that you need to deduce the desired result from imagesTs, but I ran into a problem with the same evalution command line error, as follows: Total trainable parameters: 42.65 M using the following model files(pre-training weights): ['../output_tumor/unetr_pp/3d_fullres/Task003_tumor/unetr_pp_trainer_tumor__unetr_pp_Plansv2.d_0/model_final_checkpoint.model'] .... File "/home/hpc/LAB-data/disk-3.6T/X/unetr_plus_plus/training_scripts/../unetr_pp/inference/predict_simple.py", line 229, in main predict_from_folder(model_folder_name, input_folder, output_folder, folds, save_npz, num_threads_preprocessing, File "/home/hpc/LAB-data/disk-3.6T/X/unetr_plus_plus/unetr_pp/inference/predict.py", line 620, in predict_from_folder return predict_cases(model, list_of_lists[part_id::num_parts], output_files[part_id::num_parts], folds, File "/home/hpc/LAB-data/disk-3.6T/X/unetr_plus_plus/unetr_pp/inference/predict.py", line 193, in predict_cases for preprocessed in preprocessing: File "/home/hpc/LAB-data/disk-3.6T/X/unetr_plus_plus/unetr_pp/inference/predict.py", line 89, in preprocess_multithreaded assert isinstance(trainer, Trainer_acdc) or isinstance(trainer, Trainer_synapse) AssertionError

SoloTillDawn commented 4 months ago

Dear @Amshaker , Sorry for the inconvenience. I have read your paper again to solve my doubts (1). Could you please answer my questions (2) and (3)

Amshaker commented 4 months ago

Hi @Naichaweek ,

Thanks for your interest in our work!

For (1), The Dice of BRaTs is the same is in our paper, please verify the data division or use the released data. To verify, you can download the checkpoint of BRaTs and do the inference. It will reproduce the same Dice score :)

For (2) and (3), these parameters are used in the trainer file, but not inside the network of UNETR++. They were by default the arguments for nnFormer, but here are not used. You can neglect or remove them, they are not included in the model weights.

Best regards, Abdelrahman.