config.toml 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # Pipline Scenario to run
  2. # "scen_train_all" - Train, evaluate (test+val), noise, combine, analyze
  3. # "scen_load_all" - Load, evaluate (test+val), noise, combine, analyze
  4. # "scen_load_eval" - Load, evaluate (test+val), combine, analyze (no noise)
  5. # "scen_analyze" - Analyze existing evaluation files only (no training/eval)
  6. # "scen_kfold" - Patient-grouped k-fold CV: train+eval per fold, then OOF + analyze
  7. scenario = "scen_kfold"
  8. [run]
  9. # Script/automation options. Leave both false for normal interactive use.
  10. autorun = false # start the pipeline automatically once the config loads
  11. autoquit = false # exit the app when the pipeline finishes (0/1 return code)
  12. # In autorun, allow overwriting PROTECTED outputs (models/evaluations) without a
  13. # prompt. Not needed for "scen_analyze", which only writes regeneratable analysis
  14. # artifacts and therefore never triggers the overwrite guard.
  15. force_overwrite = false
  16. [data]
  17. mri_files_path = "../data/PET_volumes_customtemplate_float32/"
  18. xls_file_path = "../data/LP_ADNIMERGE.csv"
  19. seed = 42
  20. data_splits = [0.7, 0.2, 0.1] # train, validation, test
  21. image_channels = 1
  22. clin_data_channels = 2
  23. num_classes = 2 # AD, NL
  24. [training]
  25. device = "cuda:0" # "cpu", "cuda", "mps"
  26. batch_size = 32
  27. ensemble_size = 30
  28. droprate = 0.05
  29. learning_rate = 0.0001
  30. num_epochs = 25
  31. deterministic = false # force deterministic cuDNN kernels (slower, exact reproduction)
  32. [evaluation]
  33. # Gaussian noise standard deviations applied to images during noisy evaluation
  34. # (step 6). 0.0 is the clean baseline and should be kept first.
  35. noise_levels = [0.0, 0.05, 0.1, 0.2, 0.3, 0.5, 0.7, 1.0, 1.5, 2.0, 3.0, 5.0]
  36. # Monte-Carlo forward passes used to estimate Bayesian predictive/model
  37. # uncertainty (step 5/6). Ignored for the deterministic ensemble.
  38. mc_passes = 30
  39. # Splits pooled into the combined_*.nc files that analysis prefers. The splits
  40. # are patient-disjoint, so pooling just enlarges the evaluation set (tighter
  41. # accuracy/uncertainty estimates). Set to ["test"] for a test-only headline
  42. # number -- note val is not a pure held-out set if it ever informed tuning.
  43. combine_splits = ["test", "val"]
  44. [kfold]
  45. # Used only by the "scen_kfold" scenario. Each fold trains a full ensemble on
  46. # ~(k-1)/k of the patients and evaluates on the held-out 1/k; out-of-fold results
  47. # are pooled to cover every sample. NOTE: cost is ~k * a normal train+eval run.
  48. k_folds = 5 # number of patient-grouped folds (each ~1/k held out)
  49. val_fraction = 0.15 # fraction of each fold's non-test patients used for validation
  50. include_noise = false # also run the noise sweep within each fold (much slower)