| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- """Pipeline task registry and scenario definitions.
- A *task* is a callable ``task(tracker, logger, config, state) -> None``. A
- *scenario* is an ordered list of task ids the pipeline runs. Tasks communicate
- through the mutable ``state`` dict (dataloaders, model paths, control events).
- Pipeline stages (see ai/ARCHITECTURE.md):
- 1. load_data -> implemented
- 2. train_regular -> implemented
- 3. train_bayesian -> implemented
- 4. evaluate_regular -> implemented
- 5. evaluate_bayesian-> implemented
- 6. evaluate_noisy -> implemented
- load_models -> implemented; discovers saved .pt ensembles on disk and
- records their paths in ``state`` so evaluation is
- decoupled from training (training frees models from VRAM
- after saving). Evaluation loads one model at a time.
- """
- from . import evaluate
- from . import load_data
- from . import load_models
- from . import train_bayesian
- from . import train_normal
- PIPELINE_TASKS = {
- "load_data": {
- "task_name": "Load Image and ADNIMERGE",
- "task_func": load_data.load_data_task,
- },
- "train_regular": {
- "task_name": "Train Regular Models",
- "task_func": train_normal.train_normal_task,
- },
- "train_bayesian": {
- "task_name": "Train Bayesian Models",
- "task_func": train_bayesian.train_bayesian_task,
- },
- "load_models": {
- "task_name": "Load Saved Models",
- "task_func": load_models.load_models_task,
- },
- "evaluate_regular": {
- "task_name": "Evaluate Regular Models",
- "task_func": evaluate.evaluate_normal_task,
- },
- "evaluate_bayesian": {
- "task_name": "Evaluate Bayesian Models",
- "task_func": evaluate.evaluate_bayesian_task,
- },
- "evaluate_noisy": {
- "task_name": "Evaluate Models on Noised Data",
- "task_func": evaluate.evaluate_noisy_task,
- },
- }
- SCENARIOS = {
- "scen_train_all": {
- "label": "1. Train, Evaluate, & Noise Analysis",
- "tasks": [
- "load_data",
- "train_regular",
- "train_bayesian",
- "load_models",
- "evaluate_regular",
- "evaluate_bayesian",
- "evaluate_noisy",
- ],
- },
- "scen_load_all": {
- "label": "2. Load, Evaluate, & Noise Analysis",
- "tasks": [
- "load_data",
- "load_models",
- "evaluate_regular",
- "evaluate_bayesian",
- "evaluate_noisy",
- ],
- },
- "scen_load_eval": {
- "label": "3. Load & Evaluate (Skip Noise)",
- "tasks": [
- "load_data",
- "load_models",
- "evaluate_regular",
- "evaluate_bayesian",
- ],
- },
- }
|