MIC-DKFZ/nnUNet

Extracting u-net algorithm from nnunet pipeline

Opened this issue · 1 comments

Hi, is there a way to extract the nnunet algorithm from the pipeline and train/run it without any of the extra components? In other words, I still want the nnunet pipeline to automatically generate the parameters for the u-net model, but I want to use my custom processing and training code. Thanks

I join the question and upvote. Just wanted to ask how to get a single-fold proxy model for quick iterations between big dataset updates and for experimentation with maximum performance at least 90+% of nnUnet performance.
I wonder what is the most significant component of the nnUnet effectiveness recipe?
While I admire the performance of the framework, it is not convenient to retrain it frequently, to experiment with data and preprocessing, etc.
I have my custom single-fold U-Net network, with configuration following the nnUnet plans, the same amount of data, but it is always inferior, with a big margin, to nnUnet, and even to an every nnUnet fold statistics, if I understand them correctly.
If I could reach 90-95% of nnUnet, I could use this proxy model for quicker iterations, for integration with a segmentation UI, such as Slicer, for further experimentation, using nnUnet performance as a baseline.
But still can't approach that baseline in my proxy model and wonder, what do I miss?
I implemented batchgenerators and tried to copy basic augmentations from nnUNetTrainer - still no breakthrough.
My data is about 150x150x150 or 170x .. in size, so I don't intend to tile it. nnUnet sometimes makes only a single tile, sometimes from 2 to a maximum of 4 tiles - depending on my local version.
One thing that I haven't tried yet - is a combination of Dice and CrossEntropy loss - so far, the proxy model runs with CrossEntropy only.
But I'm still not sure this would be a key component to the nnUnet success.
I came across this question and understood that it is what I look for as well.
Can you suggest a scheme for how to extract the basics from the nnUnet framework for a custom lightweight domain-specific proxy model with performance close to the nnUnet?
Or how can I find those key components for a proxy model in a hyperparameters search, provided I need only a single-fold, no-tiling processing?
Thank you in advance!