Training Models and Selecting Checkpoints¶
The training pipeline covers patch and whole-image diffusion priors, native 512-resolution training, fixed-noise and noise-conditioned PnP denoisers, validation-intensive final checkpoints, resumption, and W&B provenance.
Training models and checkpoints¶
The GCP runner’s default task order is:
Task |
Model/data change |
|---|---|
|
Whole-image prior, all processed training slices. |
|
Whole-image prior, four-slice regime. |
|
Unconditioned DRUNet. |
|
DRUNet with a noise-level input channel. |
|
Patch prior with maximum patch size 96. |
|
Default patch prior, all processed training slices. |
|
Native-resolution patch prior. |
|
Main 256-resolution patch prior. |
|
Maximum patch size 32. |
|
Maximum patch size 16. |
|
Fixed patch size 8. |
|
Main patch prior without x/y coordinate channels. |
Diffusion training defaults¶
Patch and whole-image priors use an EDM-preconditioned NCSN++ denoiser. Both
have four resolution levels, four residual blocks per level, 128 base channels,
dropout 0.05, and attention at resolution 16. Patch channel multipliers are
[1, 2, 2, 2]; whole-image multipliers are [1, 2, 2, 4]. Default models
receive the image plus normalised x/y coordinates. The no-position model
receives only the image channel.
Adam uses learning rate 2e-4. Training noise is log-normal,
log(sigma) ~ N(-1.2, 1.2^2), truncated to [0.002, 40], with
sigma_data=0.5; the learning rate is ramped over the first ten million
training images or patches. Whole-image batches contain 8 slices. Patch effective batch
sizes are 128, 256, and 512 from largest to smallest patch. An EMA with a
500,000-example half-life supplies validation and inference weights.
Training preset |
Patch sizes |
Probabilities |
Padding |
|---|---|---|---|
|
8 |
1.0 |
8 |
|
8, 16 |
0.3, 0.7 |
16 |
|
8, 16, 32 |
0.2, 0.3, 0.5 |
32 |
Default |
16, 32, 56 |
0.2, 0.3, 0.5 |
24 |
|
32, 64, 96 |
0.2, 0.3, 0.5 |
32 |
Native 512 |
16, 32, 64 |
0.2, 0.3, 0.5 |
64 |
The GCP base phase budgets six hours for each patch task and eighteen hours for
each whole-image task. The following six-hour validation-intensive phase uses
4,000 validation patches every 20,000 seen patches, or all 328 validation
images every 2,500 seen images. The best EMA checkpoint in that phase is named
<prefix>_min_intense_val.pt and is the diffusion checkpoint used by the
reconstruction matrix.
Slurm follows the same two-phase schedule within each job. Patch-prior tasks
train normally for six hours and intensively validate for six hours; their
Slurm allocation is 12 hours plus a 30-minute setup/final-save buffer.
Whole-image tasks train normally for eighteen hours and intensively validate
for the final six hours; their allocation is 24 hours plus the same buffer.
The two task families are submitted as separate arrays so their scheduler time
limits are accurate. P=96 remains capped at batch size 96 on A100 by
default, even if the general patch batch size is raised; lower it with
PADIS_P96_BATCH_SIZE or change the explicit safety ceiling with
PADIS_P96_A100_BATCH_LIMIT only after a memory check.
PnP defaults¶
Both DRUNets use 64 internal channels, four blocks per level, batch size 8,
Adam at 1e-4, and 100 epochs. Gaussian training noise is sampled uniformly
from [0, 0.05]. The best validation files are:
pnp_lidc_drunet/pnp_lidc_drunet_min_val.pt
pnp_lidc_drunet_noise_cond/pnp_lidc_drunet_noise_cond_min_val.pt
The conditioned reconstruction row supplies noise level 0.03.
Resuming and W&B¶
Periodic full-state files contain optimiser, counters, and EMA state. Training scripts discover compatible periodic checkpoints automatically. The GCP runner keeps per-task phase markers under:
<training-root>/.gcp_spot/{done,running,failed,logs,runtime}/
Rerunning the same command skips valid completed phases and resumes incomplete
ones. W&B logging defaults to online mode and final artefacts are uploaded
unless PADIS_NO_WANDB_ARTIFACT=1; persistent checkpoints do not depend on W&B.
Notes and limitations¶
The cp_tv implementation executes LION’s Chambolle-Pock TV solver and is
not the exact ADMM-TV algorithm described by Hu et al. The baseline uses fan-beam FDK,
not parallel-beam FBP. pnp_admm uses a LION-native DRUNet surrogate as its
DRUNet denoiser;
the source description does not give enough optimizer, architecture, or
stopping-rule detail for exact identity. A no-PaDIS-prior or empty checkpoint
is never treated as checkpoint identity. The completed final training and
reconstruction used a Google-hosted NVIDIA RTX PRO 6000; fixed-validation
tuning also used a GTX 1070. The Slurm A100 path is an equivalent reproduction
backend, not the hardware on which the reported final results were obtained.
The CP baseline retains the isotropic TV objective, uses lambda=0.001 for
1,000 iterations, and clips its output to [0,1] without imposing
non-negativity inside the solver. It is therefore reported as CP, not as an
exact reproduction of the original work’s ADMM-TV baseline.