wikillm

Paper · 2024-04-15 · cs.CV

nnU-Net Revisited: A Call for Rigorous Validation in 3D Medical Image Segmentation

Benchmarks CNN, Transformer and Mamba 3D segmentation models on six datasets with five-fold CV on nnU-Net splits. Recent claims mostly fail against the original nnU-Net; CNN U-Nets (ResEnc, MedNeXt, STU-Net) lead. BTCV and BraTS separate methods poorly. Author-reported.

Semantic segmentationBenchmark validitySegmentation evaluation (scoring foreground, saliency and segmentation masks)medical-imagingsegmentationbenchmarkingvalidation

arXivPDFCodeMarkdown13 min read

AI-compiled by claude-haiku-5-5 on 2026-10-24, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

In plain words

Medical image segmentation means outlining organs or tumours in 3D scans. Many papers claim that a new neural network design beats the U-Net, the standard architecture for this job. This paper asks whether those claims survive a fair test. Its answer is mostly no. When the comparisons are made carefully, the old U-Net, configured well by the nnU-Net framework and given enough GPU memory, beats most of the newer designs.

The authors list common ways such comparisons go wrong. Examples include giving the new method extra training data or a stronger encoder that the baseline lacks, comparing against a poorly tuned baseline, using a single small test split, and picking only the classes that look good. They also rank six public datasets by how well they tell methods apart, and find that some of the most popular ones are poor for that purpose.

The lesson for an engineer is to check the baseline before trusting a new architecture's gain, and to measure on datasets and splits that can actually show a difference.

TL;DR

  • Benchmarks CNN, Transformer and Mamba segmentation models on six 3D datasets, using five-fold cross-validation with nnU-Net's splits §3.2 tab. 1.
  • Most recent Transformer and Mamba claims do not hold against the original nnU-Net. The strongest entries are CNN U-Nets: nnU-Net ResEnc presets, MedNeXt and STU-Net §4.
  • Author-reported. Code is Apache-2.0 nnU-Net; the other methods' code is not part of this card's source.

Problem

Papers that propose a new 3D segmentation model often compare against a baseline that is not fully tuned, is trained on less data or without the same compute, or is measured on a small or unrepresentative split. The authors argue that recent claims of superiority over the U-Net therefore cannot be trusted without a controlled comparison §1 §2.

They identify four pitfalls: confounding performance boosters (P1), baselines that are not well configured or standardised (P2), insufficient or unsuitable datasets (P3), and inconsistent reporting such as custom splits, ensembles and test-time augmentation (P4) §2.1 §2.2.

Method

The paper has two parts: a list of validation pitfalls with recommendations (R1 to R4), and a benchmark that applies them §2 §3.

Recommendations §2

  1. R1: isolate the claimed innovation. Do not couple it with extra data, self-supervised pre-training, larger compute, or ensembling that the baseline lacks §2.1.
  2. R2: configure every baseline well. Prefer auto-configuration frameworks, or require that new methods ship adaptation instructions §2.1.
  3. R3: check that each dataset can separate methods, and use enough datasets §2.2.
  4. R4: use five-fold cross-validation with rotating validation folds. Ideally keep a separate pool of development datasets and an independent pool for testing §2.2.

Benchmark protocol §3.1

  1. Every method uses a standard configuration scheme, applied in this order: (a) the method's own self-configuration if it has one; (b) the configuration nearest to the dataset when several are offered; (c) the default configuration when no alternatives exist; (d) where needed, a lower learning rate until training converges §3.1.
  2. All models are trained from scratch. The only exception is SwinUNETR inside Auto3DSeg, which by default loads pre-trained weights and was left as is §3.1.
  3. All trainings run on one NVIDIA A100 with 40 GB VRAM, which excludes the largest STU-Net variant ("H") §3.1.
  4. Most methods run inside the nnU-Net framework. SwinUNETR (V1 and V2) was integrated into nnU-Net because its configuration instructions were incomplete §3.1.
  5. The framework comparison runs Auto3DSeg (version 1.3.0, part of MONAI) with three architectures: SegResNet, DiNTS and SwinUNETR §3.1.

Dataset suitability score §3.2 fig. 1 tab. 3

Computed per dataset from the same benchmark runs. The paper defines it in words, and it has no numbered equation.

Pseudocode
# Dataset suitability: inter-method SD over intra-method SD  [§3.2]
# dice[method][fold] = DSC of one method on one of the five folds
# Output: suitability ratio (higher = better at separating methods)

def suitability(dice):
    # Intra-method SD: spread across folds, per method, then averaged  [§3.2]
    intra = mean([std(dice[m]) for m in methods])
    # Inter-method SD: spread of each method's fold-mean score  [§3.2]
    inter = std([mean(dice[m]) for m in methods])
    return inter / intra

The paper does not state the SD convention (population or sample).

Evaluation §3.2 tab. 4

  • Five-fold cross-validation, with the splits generated by nnU-Net and used for every method §3.2.
  • Primary metric: average Dice similarity coefficient (DSC). Secondary metric: Normalized Surface Dice (NSD) at 2 mm tolerance tab. 4.
  • Both metrics are averaged over classes and then over folds. For BraTS2021 and KiTS2023, metrics are computed on the hierarchical evaluation regions, not the non-overlapping classes §3.2.

Datasets §3.2: BTCV, ACDC, LiTS, BraTS2021, KiTS2023 and AMOS2022 (post-challenge Task 2). They were chosen for popularity.

Methods compared §3.1 tab. 1

  • CNN: nnU-Net original; nnU-Net ResEnc presets M, L, XL (residual-encoder U-Nets sized for three VRAM budgets); MedNeXt L with kernel sizes k3 and k5; STU-Net S, B, L.
  • Transformer: SwinUNETR, SwinUNETRV2, nnFormer and CoTr.
  • Mamba: U-Mamba Bot and U-Mamba Enc, plus the "No-Mamba Base" ablation that keeps the same setting without Mamba layers.
  • Framework comparison: Auto3DSeg SegResNet, DiNTS and SwinUNETR.

Hyperparameters

The paper states few training hyperparameters. The values below come from the official nnU-Net code (commit in the frontmatter), unless noted. They are the framework defaults; the paper does not say which overrides each method used.

NameValueWhereNotes
Folds5, nnU-Net splits§3.2same splits for all methods
MetricsDSC (primary), NSD at 2 mm§3.2 tab. 4averaged over classes, then folds
Training regimefrom scratch§3.1exception: SwinUNETR in Auto3DSeg
GPU1 × A100 40 GB§3.1equal VRAM budget for all methods
OptimiserSGD, momentum 0.99, NesterovnnUNetTrainer.pycode default
Initial learning rate1e-2nnUNetTrainer.pycode default; paper gives no per-method values
LR schedulepolynomial decay over epochsnnUNetTrainer.pycode default
Weight decay3e-5nnUNetTrainer.pycode default
Epochs1000nnUNetTrainer.pycode default
Iterations per epoch250 training, 50 validationnnUNetTrainer.pycode default
Foreground oversampling0.33nnUNetTrainer.pycode default
Deep supervisionenablednnUNetTrainer.pycode default
LossDice + cross-entropy, weights 1 and 1, smooth 1e-5, background excludednnUNetTrainer.pybatch_dice flag comes from the plans; not checked
Base feature count32default_experiment_planner.pyplanner default
Max features (3D)320default_experiment_planner.pyplanner default
Minimum feature-map edge4default_experiment_planner.pyplanner default
Minimum batch size2default_experiment_planner.pyplanner default
Dataset coverage cap, default planner5% of the datasetdefault_experiment_planner.pyplanner default; caps batch size
ResEnc encoder blocks per stage(1, 3, 4, 6, 6, …)residual_encoder_unet_planners.pyfixed in the ResEnc planner
ResEnc VRAM target (M / L / XL)8 / 24 / 40 GBresidual_encoder_unet_planners.pysets the patch and batch size; paper gives no batch sizes for the main runs
ResEnc reference (3D, M / L / XL)680 M / 2100 M / 3600 Mresidual_encoder_unet_planners.pystatic VRAM-estimate units, not GB
ResEnc dataset coverage cap1 (whole dataset)residual_encoder_unet_planners.pydiffers from the default 5%; see Pitfalls
Auto3DSeg version1.3.0§3.1not part of the cloned code
Auto3DSeg budget (KiTS fold 0 ablation)up to 900 epochs, 8 GPUstab. 2paper's manual tuning

Results

Author-reported. Setup: five-fold cross-validation with nnU-Net splits on six 3D datasets, all trained from scratch on one A100 40 GB §3.1 §3.2. RT is GPU-hours on A100 40 GB PCIe, and VRAM is the peak usage the paper reports, in GB.

Table 1: mean DSC (%) per dataset tab. 1. Bold marks the best value in each dataset column, as in the paper.

MethodBTCVACDCLiTSBraTSKiTSAMOSVRAM [GB]RT [h]Arch.nnU
nnU-Net (org.)83.0891.5480.0991.2486.0488.647.709CNNYes
nnU-Net ResEnc M83.3191.9980.7591.2686.7988.779.1012CNNYes
nnU-Net ResEnc L83.3591.6981.6091.1388.1789.4122.7035CNNYes
nnU-Net ResEnc XL83.2891.4881.1991.1888.6789.6836.6066CNNYes
MedNeXt L k384.7092.6582.1491.3588.2589.6217.3068CNNYes
MedNeXt L k585.0492.6282.3491.5087.7489.7318.00233CNNYes
STU-Net S82.9291.0478.5090.5584.9388.085.2010CNNYes
STU-Net B83.0591.3079.1990.8586.3288.468.8015CNNYes
STU-Net L83.3691.3180.3191.2685.8489.3426.5051CNNYes
SwinUNETR78.8991.2976.5090.6881.2783.8113.1015TFYes
SwinUNETRV280.8592.0177.8590.7484.1486.2413.4015TFYes
nnFormer80.8692.4077.4090.2275.8581.555.708TFYes
CoTr81.9590.5679.1090.7384.5988.028.2018TFYes
No-Mamba Base83.6991.8980.5791.2685.9889.0412.024CNNYes
U-Mamba Bot83.5191.7980.4091.2686.2289.1312.4024MamYes
U-Mamba Enc82.4191.2280.2790.9186.3488.3824.9047MamYes
A3DS SegResNet80.6990.6979.2890.7981.1187.2720.0022CNNNo
A3DS DiNTS78.1882.9769.0587.7565.2882.3529.2016CNNNo
A3DS SwinUNETR76.5482.6868.5989.9052.8285.0534.509TFNo

Table 4: mean NSD (%) at 2 mm tab. 4 (the paper orders the columns LiTS, BTCV, ACDC, BraTS2021, KiTS2023, AMOS2022)

MethodLiTSBTCVACDCBraTS2021KiTS2023AMOS2022
nnU-Net (org.)78.2685.5394.9393.6482.9191.49
nnU-Net ResEnc M79.9686.0195.5093.7184.1091.72
nnU-Net ResEnc L80.3986.0895.1193.5985.9392.35
nnU-Net ResEnc XL79.6485.8994.9093.6186.4992.64
MedNeXt L k381.0787.7896.0793.8586.2992.72
MedNeXt L k581.2688.1896.0994.0485.6792.86
STU-Net S76.2085.1394.2793.2681.0890.81
STU-Net B77.3385.3094.5993.5483.0891.28
STU-Net L78.8585.8195.1293.6683.0292.30
SwinUNETR73.0679.7994.1293.1675.9185.13
SwinUNETRV275.3882.5295.1593.1580.1188.47
nnFormer74.6682.2995.8393.2269.4382.93
CoTr77.2584.1093.7493.4980.9290.75
No-Mamba Base78.8886.1495.2693.6483.5692.08
U-Mamba Bot78.9186.4095.4093.6583.2792.00
U-Mamba Enc78.6084.6094.3393.2183.6491.25
A3DS SegResNet76.4682.0193.8893.4075.6189.85
A3DS DiNTS62.4977.3083.6790.3658.7482.75
A3DS SwinUNETR61.1674.5983.9492.0046.3786.93

Dataset suitability tab. 3 fig. 1. Average over methods. "Inter/intra" is the suitability ratio above.

SetMetricBTCVACDCLiTSBraTSKiTSAMOS
All methodsIntra SD2.39%0.79%2.89%0.66%2.07%0.53%
All methodsInter SD2.24%2.83%3.80%0.84%9.03%2.52%
All methodsInter/intra94%357%132%127%435%474%
Without A3DSIntra SD2.35%0.56%2.66%0.66%1.93%0.48%
Without A3DSInter SD1.52%0.57%1.68%0.35%3.14%2.28%
Without A3DSInter/intra65%102%63%53%163%477%

Auto3DSeg vs nnU-Net on KiTS fold 0 tab. 2. Manual tuning of the framework approaches but does not reach nnU-Net ResEnc M.

ModelGPU hVRAM (GPUs × MB)EpochsBatchPatchSpacing (mm)DSC [%]
nnU-Net (org.)8.881 × 6901-2128³1×0.78×0.7886.25
nnU-Net ResEnc M11.391 × 8805-2128³1×0.78×0.7887.91
nnU-Net ResEnc L35.281 × 24223-2160×224×1921×0.78×0.7888.60
A3DS SegResNet (default)39.721 × 202673002144×224×2241×0.78×0.7883.73
A3DS SegResNet61.288 × 202673008×2144×224×2241×0.78×0.7876.81
A3DS SegResNet136.648 × 202676008×2144×224×2240.78×0.78×0.7885.60
A3DS SegResNet247.448 × 398739008×2224×256×2560.78×0.78×0.7887.77

Spacing ablation for MedNeXt tab. 5. Mean DSC (%) with isotropic spacing for ResEnc L:

DatasetMethodPatchSpacing (mm)BatchDSC
BTCVnnU-Net ResEnc L80×256×2563×0.76×0.76283.35
BTCVnnU-Net ResEnc L (iso)192³1×1×1284.01
BTCVMedNeXt L k3128³1×1×1284.70
ACDCnnU-Net ResEnc L20×256×2245×1.56×1.561091.69
ACDCnnU-Net ResEnc L (iso)96×256×2561×1×1392.64
ACDCMedNeXt L k3128³1×1×1292.65
AMOSnnU-Net ResEnc L96×224×2242×0.71×0.71289.40
AMOSnnU-Net ResEnc L (iso)192³1×1×1289.60
AMOSMedNeXt L k3128³1×1×1289.62

Transfer ablation for STU-Net L tab. 6. Mean DSC (%); the source caption says the BraTS fine-tune did not converge at the default learning rate of 0.001, so the table cell is 0.

ModelBTCVACDCLiTSBraTSKiTSAMOSRT [h]
STU-Net L (from scratch)83.3691.3180.3191.2685.8489.3451
STU-Net L (pre-trained on TotalSegmentator)84.2891.5381.570 (did not converge)88.3289.4651 (fine-tuning only; pre-training about 4× longer)

Headline findings §4

  • CNN U-Nets built in nnU-Net perform strongest across all six datasets. MedNeXt has the best DSC on every dataset except KiTS, but its gains shrink on the more suitable datasets §4 tab. 1.
  • Transformer models (SwinUNETR, nnFormer, CoTr) do not match the CNNs or the original nnU-Net §4.
  • The U-Mamba advantage disappears once the missing "No-Mamba Base" ablation is included; the earlier gain came from the residual encoder, not Mamba §4 tab. 1.
  • Auto3DSeg methods trail the original nnU-Net. Against the same SwinUNETR, nnU-Net wins on 5 of 6 datasets §4.
  • Gains from scaling grow on the harder datasets, AMOS and KiTS §4.

Paper vs code

Code: the official nnU-Net repository, https://github.com/MIC-DKFZ/nnUNet, at commit 1489d746e084459581ff20382c1241d8cc2eb258, Apache-2.0. The paper links this repository in its contributions list §1.

  • Scope of code checked. Only the nnU-Net framework was cloned and read. The implementations of MedNeXt, STU-Net, U-Mamba, SwinUNETR, nnFormer, CoTr and Auto3DSeg were not checked, so no code citations are given for them.
  • ResEnc presets. The paper describes M, L and XL as presets for three hardware tiers, and says all runs used one 40 GB A100 §3.1. The code sizes the presets for targets of 8, 24 and 40 GB and documents them as roughly 9–11 GB, 24 GB and 40 GB residual_encoder_unet_planners.py residual_encoder_unet_planners.py residual_encoder_unet_planners.py. The paper's own VRAM column (9.10, 22.70 and 36.60 GB) is measured usage tab. 1.
  • Dataset coverage cap. The paper does not mention it. The ResEnc presets set the batch-size cap to the whole dataset (coverage 1) residual_encoder_unet_planners.py, while the default planner caps coverage at 5% default_experiment_planner.py. Batch sizes for the paper's ResEnc runs are therefore not determined by the paper's text.
  • Learning rate rule. The paper says the learning rate was decreased "until convergence" for some methods §3.1. The defaults shown above fix the initial rate at 1e-2 nnUNetTrainer.py, and no per-method values are given in the paper. Whether the learning rate was changed for any method is not stated.
  • Deprecated duplicate planner. A module at nnunetv2/experiment_planning/experiment_planners/resencUNet_planner.py now re-exports the maintained class and emits a deprecation warning. The code's own comment says that an earlier duplicate caused -pl ResEncUNetPlanner to pick a stale class resencUNet_planner.py. Use the residual_unets path.
  • Trainer defaults not contradicted. The paper does not state epochs, optimiser or loss settings, so the code defaults cannot be checked against it. The code defaults are the values in the Hyperparameters table.

Pitfalls

  • Training hyperparameters are mostly not stated. The paper gives no epochs, learning rates, batch sizes or patch sizes for most methods, except the tables in the appendix. The values above are nnU-Net code defaults and may not be what each method used. The paper says the learning rate was lowered for some methods but does not name them.
  • Batch sizes depend on the planner. For ResEnc presets, batch size comes from the VRAM estimate and the coverage cap, not from a fixed value. With the cap set to the whole dataset, small datasets can get large batches. Plan on running the planner rather than copying a batch size.
  • Dataset ranking depends on which methods are included. Without Auto3DSeg, the ACDC ratio falls from 357% to 102%, and BTCV falls from 94% to 65% tab. 3. The text names ACDC, AMOS and KiTS as most suitable §4; the ranking of ACDC relative to the others is sensitive to the method set. The paper does not state the SD convention, so ratios may shift slightly by convention.
  • Differences between top methods are small relative to fold variability. Intra-method SD is 2.39% on BTCV and 2.07% on KiTS tab. 3. Several top-table gaps are below one point (for example, ResEnc L vs MedNeXt L k3 on BraTS: 91.13 vs 91.35). The paper reports no significance test, so the ranking among the top CNNs on the suitable datasets is not established.
  • Spacing confounds architecture. Isotropic ResEnc L (84.01 on BTCV, 92.64 on ACDC, 89.60 on AMOS) comes close to MedNeXt L k3 (84.70, 92.65, 89.62), and the paper concludes that part of MedNeXt's advantage is target spacing §4 tab. 5. Spacing and patch size must be set per dataset to reproduce this.
  • Hidden compute cost. MedNeXt L k5 runs for 233 GPU-hours against 18 GB VRAM, while ResEnc M runs for 12 hours tab. 1. The paper's cost comparison uses RT, and the Auto3DSeg manual-tuning run uses about 240 GPU-hours on 8 GPUs for one fold tab. 2 §4. The appendix caption gives 240 hours, the table 247.44 hours; use the table value.
  • Appendix table numbers. This card cites appendix tables as tab. 2 to tab. 6, following source order in the LaTeX. The compiled PDF was not available, so verify these numbers against it before relying on them.
  • Missing STU-Net value. The pre-trained STU-Net BraTS cell is 0 in the source table, meaning the fine-tune did not converge. Do not average it.
  • Auto3DSeg version. The paper uses Auto3DSeg 1.3.0 §3.1. The wider Auto3DSeg code is not part of this card's source, so claims about its internals are not checked.
  • Licence for external code. The MedNeXt, STU-Net and U-Mamba repositories are separate projects; their licences were not checked here.

Lineage

  • Builds on: nnU-Net (cited in the paper as 2018 and 2021 works) for auto-configuration and the self-configuring U-Net baseline §1 §2.1. Not a wiki card.
  • Compared against: U-Mamba §3.1, MedNeXt §3.1, STU-Net §3.1, SwinUNETR and SwinUNETR V2 §3.1, nnFormer §3.1, CoTr §3.1, Auto3DSeg §3.1. None of these have cards in this wiki yet.
  • Superseded by: not stated.

Source and license

Adapted from “nnU-Net Revisited: A Call for Rigorous Validation in 3D Medical Image Segmentation” by Fabian Isensee, Tassilo Wald, Constantin Ulrich, Michael Baumgartner, Saikat Roy, Klaus Maier-Hein, Paul F. Jaeger (arXiv:2404.09556), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. Code citations refer to https://github.com/MIC-DKFZ/nnUNet at commit 1489d746e084 (Apache-2.0). Any quoted code is shown under that license.