Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error occurred when following pretraining_and_finetuning tutorial #2195

Open
yy042 opened this issue May 16, 2024 · 3 comments
Open

Error occurred when following pretraining_and_finetuning tutorial #2195

yy042 opened this issue May 16, 2024 · 3 comments
Assignees

Comments

@yy042
Copy link

yy042 commented May 16, 2024

Hello. Thank you for your amazing work.
I got a problem when I try to fine tune a pretrained model on my personal dataset(Dataset020). Following the steps in documentation/pretraining_and_finetuning.md, I have finished pretraining on Dataset040_KiTS19 successfully. But when I try to run the last order nnUNetv2_train TARGET_DATASET CONFIG FOLD -pretrained_weights PATH_TO_CHECKPOINT, as I run nnUNetv2_train 20 3d_fullres 0 -pretrained_weights D:\nnUNet\nnUNetFrame\nnUNet_results\Dataset040_KiTS19\nnUNetTrainer__custom_plan1__3d_fullres\fold_all\checkpoint_best.pth, an error occured:

File "D:\nnUNet\nnunetv2\run\run_training.py", line 46, in get_trainer_from_args
assert issubclass(nnunet_trainer, nnUNetTrainer), 'The requested nnunet trainer class must inherit from '
AssertionError: The requested nnunet trainer class must inherit from nnUNetTrainer

It's odd because I've been strictly follow the instructions in documentation/pretraining_and_finetuning.md, and I have never changed the structure of my nnU-Net.
I would appreciate it if you could point out what I have done is wrong. Thank you for your support!

@seziegler
Copy link
Member

Hi @yy042 ,
can you please share all the commands you used when following the pretraining steps?

One thing you could try is setting your checkpoint path in quotation marks like this:
nnUNetv2_train TARGET_DATASET CONFIG FOLD -pretrained_weights PATH_TO_CHECKPOINT, as I run nnUNetv2_train 20 3d_fullres 0 -pretrained_weights "D:\nnUNet\nnUNetFrame\nnUNet_results\Dataset040_KiTS19\nnUNetTrainer__custom_plan1__3d_fullres\fold_all\checkpoint_best.pth"

Best,
Sebastian

@yy042
Copy link
Author

yy042 commented May 17, 2024

Thank you for your reply! I've tried setting checkpoint path in quotation marks, but the same error occurred again.
Here are the commands I used when following the pretraining tutorial:

source dataset-Dataset040_KiTS19
target dataset-Dataset020_KidneyTumor

  1. nnUNetv2_plan_and_preprocess -d 20
  2. nnUNetv2_extract_fingerprint -d 40
  3. nnUNetv2_move_plans_between_datasets -s 20 -t 40 -sp nnUNetPlans -tp custom_plan1
  4. nnUNetv2_preprocess -d 40 -plans_name custom_plan1
  5. nnUNetv2_train 40 3d_fullres all -p custom_plan1
  6. nnUNetv2_train 20 3d_fullres 0 -pretrained_weights "D:\nnUNet\nnUNetFrame\nnUNet_results\Dataset040_KiTS19\nnUNetTrainer__custom_plan1__3d_fullres\fold_all\checkpoint_best.pth" -AssertionError: The requested nnunet trainer class must inherit from nnUNetTrainer

@seziegler
Copy link
Member

Hi @yy042 ,

can you try running the train command when adding -tr nnUNetTrainer?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants