From 0721f107c9d35a2d49099f37e962f5b8c73cc4d4 Mon Sep 17 00:00:00 2001 From: AnikethCheluva Date: Tue, 20 Oct 2026 14:55:06 -0400 Subject: [PATCH] Link every component explicitly in real experiment entrypoints --- egomimic/hydra_configs/experiment/README.md | 16 ++++++++ .../arcdur_abstime/fold_and_stack_towels.yaml | 7 ++++ .../arcdur_abstime/organize_stationary.yaml | 6 +++ .../real/arcdur_abstime/wireless_earbuds.yaml | 6 +++ .../real/fold_and_stack_towels/arc_dur.yaml | 7 ++++ .../real/fold_and_stack_towels/arc_vel.yaml | 7 ++++ .../real/fold_and_stack_towels/baseline.yaml | 13 ++++-- ...owels_abcdit_baseline_visual_openloop.yaml | 7 ++++ ..._multistream_logclock_visual_openloop.yaml | 11 ++++- ...ls_abcdit_multistream_visual_openloop.yaml | 7 ++++ ...ls_hpt180_multistream_visual_openloop.yaml | 6 +++ ...owels_hpt180_baseline_visual_openloop.yaml | 7 ++++ ..._towels_hpt180_hybrid_visual_openloop.yaml | 7 ++++ .../variants/new290plus74_baseline.yaml | 13 ++++-- .../experiment/real/multitask/arc_dur.yaml | 7 ++++ .../experiment/real/multitask/arc_vel.yaml | 7 ++++ .../experiment/real/multitask/baseline.yaml | 7 ++++ ...task4_abcdit_baseline_visual_openloop.yaml | 6 +++ ...titask4_abcdit_hybrid_visual_openloop.yaml | 7 ++++ .../real/organize_stationary/arc_dur.yaml | 7 ++++ .../real/organize_stationary/arc_vel.yaml | 7 ++++ .../real/organize_stationary/baseline.yaml | 13 ++++-- ...nize_rl2_elmo_hpt180_cotrain_baseline.yaml | 7 ++++ ...e_rl2_elmo_hpt180_cotrain_multistream.yaml | 7 ++++ ...y_rl2_hpt300_visual_baseline_openloop.yaml | 6 +++ ...ery_rl2_hpt300_visual_hybrid_openloop.yaml | 6 +++ .../real/wireless_earbuds/arc_dur.yaml | 7 ++++ .../real/wireless_earbuds/arc_vel.yaml | 7 ++++ .../real/wireless_earbuds/baseline.yaml | 12 ++++-- tests/test_abc_arc_experiment_layout.py | 41 +++++++++++++++++++ 30 files changed, 257 insertions(+), 17 deletions(-) diff --git a/egomimic/hydra_configs/experiment/README.md b/egomimic/hydra_configs/experiment/README.md index 120af952a..78a73d8ef 100644 --- a/egomimic/hydra_configs/experiment/README.md +++ b/egomimic/hydra_configs/experiment/README.md @@ -26,8 +26,24 @@ Each public task YAML is a **complete experiment entry point**: its defaults select the model graph, data filters/splits/transforms, evaluator, optimizer, trainer, callbacks and logging. No additional `model=` or `data=` selection is needed. Shared parents avoid copying those definitions into every leaf. +Every runnable YAML under `real/`, including `variants/`, directly lists its +`/model`, `/data`, `/evaluator`, `/trainer`, `/callbacks` and `/logger` config +links in `defaults`. The optimizer is owned by the selected model config. +Shared experiment parents supply task-specific values; `_base/` contains +internal parents, not standalone run entry points. Supply machine-specific data/weight paths, credentials, a fresh W&B identity and the reviewed cluster allocation at launch. +Activate the project environment first (or set `PYTHONPATH=.` from the checkout). +Recipes using the shared ABC data cache require `EGOVERSE_ABC_DATASET_DIR` to +point to that host's cache. This is a storage binding, not another data/model +config selection. + +For example, inspect the complete configuration without starting training: + +```bash +python egomimic/trainHydra.py \ + +experiment=real/organize_stationary/arc_vel --cfg job --resolve +``` Example (submits a run; execute only after launch preflight): diff --git a/egomimic/hydra_configs/experiment/real/arcdur_abstime/fold_and_stack_towels.yaml b/egomimic/hydra_configs/experiment/real/arcdur_abstime/fold_and_stack_towels.yaml index c930faf05..b3cca4ec9 100644 --- a/egomimic/hydra_configs/experiment/real/arcdur_abstime/fold_and_stack_towels.yaml +++ b/egomimic/hydra_configs/experiment/real/arcdur_abstime/fold_and_stack_towels.yaml @@ -3,6 +3,13 @@ defaults: - /experiment/_shared/frozen_yam/towels_hpt300 - /experiment/real/arcdur_abstime/_base/arcdur_abstime + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time + - override /data: abc_arc/towels_since0924plus74_20261015 + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: arcdur_abstime_fold_and_stack_towels description: Frozen since0924plus74 towels (443 train / 17 val), HPT300, absolute-duration single-clock ARC M200 D0.33 diff --git a/egomimic/hydra_configs/experiment/real/arcdur_abstime/organize_stationary.yaml b/egomimic/hydra_configs/experiment/real/arcdur_abstime/organize_stationary.yaml index 13c89f3e2..0fb50725d 100644 --- a/egomimic/hydra_configs/experiment/real/arcdur_abstime/organize_stationary.yaml +++ b/egomimic/hydra_configs/experiment/real/arcdur_abstime/organize_stationary.yaml @@ -3,7 +3,13 @@ defaults: - /experiment/_shared/frozen_yam/stattempo_openloop - /experiment/real/arcdur_abstime/_base/arcdur_abstime + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt_flow - override /data: abc_arc/stationery_sp366e51_bc_time + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: arcdur_abstime_organize_stationary description: Slow-pace 366 + Elmo 51 stationery BC (417 train / 24 val), HPT 640x8 flow, absolute-duration single-clock ARC M200 D0.22 diff --git a/egomimic/hydra_configs/experiment/real/arcdur_abstime/wireless_earbuds.yaml b/egomimic/hydra_configs/experiment/real/arcdur_abstime/wireless_earbuds.yaml index fc9023880..5c6476395 100644 --- a/egomimic/hydra_configs/experiment/real/arcdur_abstime/wireless_earbuds.yaml +++ b/egomimic/hydra_configs/experiment/real/arcdur_abstime/wireless_earbuds.yaml @@ -3,7 +3,13 @@ defaults: - /experiment/_shared/frozen_yam/earbuds_updated_hpt300 - /experiment/real/arcdur_abstime/_base/arcdur_abstime + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time - override /data: abc_arc/earbuds_plus49_20261020 + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: arcdur_abstime_wireless_earbuds description: Earbuds updated + Elmo's 49 takes of 2026-10-20 (319 train / 15 val), HPT300, absolute-duration single-clock ARC M200 D0.22 diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/arc_dur.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/arc_dur.yaml index 5976edccc..45269c7e1 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/arc_dur.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/arc_dur.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/fold_and_stack_towels/arc_vel + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time + - override /data: abc_arc/towels_since0924plus74_20261015 + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: fold_and_stack_towels_arc_dur description: Frozen since0924plus74 towels HPT300, canonical absolute-duration ARC M200 D0.33 R100 diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/arc_vel.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/arc_vel.yaml index be8045ee9..45359d64c 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/arc_vel.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/arc_vel.yaml @@ -2,6 +2,13 @@ defaults: - /experiment/real/fold_and_stack_towels/baseline - /experiment/_shared/frozen_yam_arc + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time + - override /data: abc_arc/towels_since0924plus74_20261015 + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: fold_and_stack_towels_arc_vel description: Frozen since0924plus74 towels HPT300, canonical velocity ARC M200 D0.33 R100 diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/baseline.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/baseline.yaml index 2f75e5838..d5d06919d 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/baseline.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/baseline.yaml @@ -1,9 +1,14 @@ # @package _global_ defaults: -- /experiment/_shared/frozen_yam/towels_hpt300 -- override /data: abc_arc/towels_since0924plus74_20261015 -- override /model: abc_arc/frozen_yam_hpt300_time -- _self_ + - /experiment/_shared/frozen_yam/towels_hpt300 + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time + - override /data: abc_arc/towels_since0924plus74_20261015 + - override /evaluator: frozen_yam_time + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb + - _self_ towels_pool: since0924plus74 frozen_yam: variant: time diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_baseline_visual_openloop.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_baseline_visual_openloop.yaml index 8333767e2..5d61827c1 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_baseline_visual_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_baseline_visual_openloop.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/multitask/variants/abc_multitask4_abcdit_baseline_visual_openloop + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/abc_dit_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_rl2_towels_abcdit_baseline_visual_openloop description: ABC-DiT XL ABC + RL2 towel folding baseline 100-frame chunks diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_logclock_visual_openloop.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_logclock_visual_openloop.yaml index 2156e4717..3d93d1622 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_logclock_visual_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_logclock_visual_openloop.yaml @@ -1,7 +1,14 @@ # @package _global_ defaults: -- /experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_visual_openloop -- _self_ + - /experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_visual_openloop + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/abc_dit_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb + - _self_ name: abc_rl2_towels_abcdit_multistream_logclock_visual_openloop description: ABC-DiT XL ABC + RL2 towels multistream ARC D0.714 R2.10 M100, log-seconds duration clocks abc: diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_visual_openloop.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_visual_openloop.yaml index ea27d54fc..23e3f4477 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_visual_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_visual_openloop.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_baseline_visual_openloop + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/abc_dit_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_rl2_towels_abcdit_multistream_visual_openloop description: ABC-DiT XL ABC + RL2 towels multistream ARC D0.714 R2.10 M100 diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_hpt180_multistream_visual_openloop.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_hpt180_multistream_visual_openloop.yaml index d61dffd30..a230fc42e 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_hpt180_multistream_visual_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_hpt180_multistream_visual_openloop.yaml @@ -5,7 +5,13 @@ # source window, trainer and evaluator are inherited unchanged. defaults: - /experiment/real/fold_and_stack_towels/variants/abc_rl2_towels_abcdit_multistream_visual_openloop + # Shared parents supply task settings; these links select every component. - override /model: abc_arc/hpt_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_rl2_towels_hpt180_multistream_visual_openloop description: HPT180 ResNet-MLP ABC + RL2 towels multistream ARC D0.714 R2.10 M100 diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_baseline_visual_openloop.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_baseline_visual_openloop.yaml index a6f1eb4b6..bd59c7d01 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_baseline_visual_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_baseline_visual_openloop.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/_shared/visual_hpt300 + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_towels_hpt180_baseline_visual_openloop diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_hybrid_visual_openloop.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_hybrid_visual_openloop.yaml index 6258113b8..ba94f3c06 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_hybrid_visual_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_hybrid_visual_openloop.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/fold_and_stack_towels/variants/abc_towels_hpt180_baseline_visual_openloop + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_towels_hpt180_hybrid_visual_openloop description: HPT180 ABC towels visual-only hybrid D40 M100 R24deg diff --git a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/new290plus74_baseline.yaml b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/new290plus74_baseline.yaml index f769062ae..7b02faa08 100644 --- a/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/new290plus74_baseline.yaml +++ b/egomimic/hydra_configs/experiment/real/fold_and_stack_towels/variants/new290plus74_baseline.yaml @@ -1,9 +1,14 @@ # @package _global_ defaults: -- /experiment/_shared/frozen_yam/towels_hpt300 -- override /data: abc_arc/towels_new290plus74_20261015 -- override /model: abc_arc/frozen_yam_hpt300_time -- _self_ + - /experiment/_shared/frozen_yam/towels_hpt300 + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time + - override /data: abc_arc/towels_new290plus74_20261015 + - override /evaluator: frozen_yam_time + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb + - _self_ towels_pool: new290plus74 frozen_yam: variant: time diff --git a/egomimic/hydra_configs/experiment/real/multitask/arc_dur.yaml b/egomimic/hydra_configs/experiment/real/multitask/arc_dur.yaml index 6cf4a577b..b9e20e4ee 100644 --- a/egomimic/hydra_configs/experiment/real/multitask/arc_dur.yaml +++ b/egomimic/hydra_configs/experiment/real/multitask/arc_dur.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/multitask/arc_vel + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: multitask_arc_dur description: HPT300 ABC four-task first-delay absolute-duration ARC diff --git a/egomimic/hydra_configs/experiment/real/multitask/arc_vel.yaml b/egomimic/hydra_configs/experiment/real/multitask/arc_vel.yaml index b4f3812b0..0fa9adbbb 100644 --- a/egomimic/hydra_configs/experiment/real/multitask/arc_vel.yaml +++ b/egomimic/hydra_configs/experiment/real/multitask/arc_vel.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/multitask/baseline + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_multitask4_hpt300_hybrid_visual_openloop description: HPT300M ABC four-task visual-only hybrid ARC D81 M100 R24deg diff --git a/egomimic/hydra_configs/experiment/real/multitask/baseline.yaml b/egomimic/hydra_configs/experiment/real/multitask/baseline.yaml index a393e4573..e8745d030 100644 --- a/egomimic/hydra_configs/experiment/real/multitask/baseline.yaml +++ b/egomimic/hydra_configs/experiment/real/multitask/baseline.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/_shared/visual_hpt300 + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_multitask4_hpt300_baseline_visual_openloop description: HPT300M ABC four-task visual-only baseline 100-frame chunks diff --git a/egomimic/hydra_configs/experiment/real/multitask/variants/abc_multitask4_abcdit_baseline_visual_openloop.yaml b/egomimic/hydra_configs/experiment/real/multitask/variants/abc_multitask4_abcdit_baseline_visual_openloop.yaml index 0128952ce..30d1e9c5c 100644 --- a/egomimic/hydra_configs/experiment/real/multitask/variants/abc_multitask4_abcdit_baseline_visual_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/multitask/variants/abc_multitask4_abcdit_baseline_visual_openloop.yaml @@ -1,7 +1,13 @@ # @package _global_ defaults: - /experiment/real/multitask/baseline + # Shared parents supply task settings; these links select every component. - override /model: abc_arc/abc_dit_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_multitask4_abcdit_baseline_visual_openloop description: ABC-DiT XL four-task baseline 100-frame chunks diff --git a/egomimic/hydra_configs/experiment/real/multitask/variants/abc_multitask4_abcdit_hybrid_visual_openloop.yaml b/egomimic/hydra_configs/experiment/real/multitask/variants/abc_multitask4_abcdit_hybrid_visual_openloop.yaml index dbf494a2d..07c50f36d 100644 --- a/egomimic/hydra_configs/experiment/real/multitask/variants/abc_multitask4_abcdit_hybrid_visual_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/multitask/variants/abc_multitask4_abcdit_hybrid_visual_openloop.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/multitask/variants/abc_multitask4_abcdit_baseline_visual_openloop + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/abc_dit_yam_visual + - override /data: abc_arc/abc_visual + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: abc_multitask4_abcdit_hybrid_visual_openloop description: ABC-DiT XL four-task hybrid ARC D81 M100 R24deg diff --git a/egomimic/hydra_configs/experiment/real/organize_stationary/arc_dur.yaml b/egomimic/hydra_configs/experiment/real/organize_stationary/arc_dur.yaml index ff947e3ac..a8a0e65c0 100644 --- a/egomimic/hydra_configs/experiment/real/organize_stationary/arc_dur.yaml +++ b/egomimic/hydra_configs/experiment/real/organize_stationary/arc_dur.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/organize_stationary/arc_vel + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_bimanual_visual + - override /data: abc_arc/organize_rl2_elmo_cotrain + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: organize_stationary_arc_dur description: HPT300 robot + human organize stationery, first-delay absolute duration diff --git a/egomimic/hydra_configs/experiment/real/organize_stationary/arc_vel.yaml b/egomimic/hydra_configs/experiment/real/organize_stationary/arc_vel.yaml index 79495a46e..9905744fe 100644 --- a/egomimic/hydra_configs/experiment/real/organize_stationary/arc_vel.yaml +++ b/egomimic/hydra_configs/experiment/real/organize_stationary/arc_vel.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/organize_stationary/_base/arc + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_bimanual_visual + - override /data: abc_arc/organize_rl2_elmo_cotrain + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: organize_stationary_arc_vel description: HPT300 robot + human organize stationery, first-delay ARC velocity diff --git a/egomimic/hydra_configs/experiment/real/organize_stationary/baseline.yaml b/egomimic/hydra_configs/experiment/real/organize_stationary/baseline.yaml index 1e9a5a9a5..88aaa0a6a 100644 --- a/egomimic/hydra_configs/experiment/real/organize_stationary/baseline.yaml +++ b/egomimic/hydra_configs/experiment/real/organize_stationary/baseline.yaml @@ -1,9 +1,14 @@ # @package _global_ defaults: -- /experiment/_shared/visual_hpt300 -- override /model: abc_arc/hpt_bimanual_visual -- override /data: abc_arc/organize_rl2_elmo_cotrain -- _self_ + - /experiment/_shared/visual_hpt300 + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_bimanual_visual + - override /data: abc_arc/organize_rl2_elmo_cotrain + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb + - _self_ name: organize_rl2_elmo_hpt300_cotrain_baseline description: HPT300 ResNet-MLP stems, robot + human cotraining, 100-frame chunks abc: diff --git a/egomimic/hydra_configs/experiment/real/organize_stationary/variants/organize_rl2_elmo_hpt180_cotrain_baseline.yaml b/egomimic/hydra_configs/experiment/real/organize_stationary/variants/organize_rl2_elmo_hpt180_cotrain_baseline.yaml index 4ea8cc955..2ae308641 100644 --- a/egomimic/hydra_configs/experiment/real/organize_stationary/variants/organize_rl2_elmo_hpt180_cotrain_baseline.yaml +++ b/egomimic/hydra_configs/experiment/real/organize_stationary/variants/organize_rl2_elmo_hpt180_cotrain_baseline.yaml @@ -4,6 +4,13 @@ # keeping the ResNet-MLP image stems. 182.5M parameters. defaults: - /experiment/real/organize_stationary/baseline + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_bimanual_visual + - override /data: abc_arc/organize_rl2_elmo_cotrain + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: organize_rl2_elmo_hpt180_cotrain_baseline description: HPT180 ResNet-MLP stems, robot + human cotraining, 100-frame chunks diff --git a/egomimic/hydra_configs/experiment/real/organize_stationary/variants/organize_rl2_elmo_hpt180_cotrain_multistream.yaml b/egomimic/hydra_configs/experiment/real/organize_stationary/variants/organize_rl2_elmo_hpt180_cotrain_multistream.yaml index f3867fe4e..4da34f872 100644 --- a/egomimic/hydra_configs/experiment/real/organize_stationary/variants/organize_rl2_elmo_hpt180_cotrain_multistream.yaml +++ b/egomimic/hydra_configs/experiment/real/organize_stationary/variants/organize_rl2_elmo_hpt180_cotrain_multistream.yaml @@ -3,6 +3,13 @@ # 182.5M model and 400-frame ARC read window. defaults: - /experiment/real/organize_stationary/_base/arc + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_bimanual_visual + - override /data: abc_arc/organize_rl2_elmo_cotrain + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: organize_rl2_elmo_hpt180_cotrain_multistream description: HPT180 ResNet-MLP cotraining, multistream ARC D0.42 R24deg M100 duration clocks diff --git a/egomimic/hydra_configs/experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_baseline_openloop.yaml b/egomimic/hydra_configs/experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_baseline_openloop.yaml index 2c0272a66..27b5e105c 100644 --- a/egomimic/hydra_configs/experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_baseline_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_baseline_openloop.yaml @@ -1,7 +1,13 @@ # @package _global_ defaults: - /experiment/_shared/visual_hpt300 + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_yam_visual - override /data: abc_arc/stationery_rl2_hpt_baseline + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: stationery_rl2_hpt300_visual_baseline_openloop description: HPT300M RL2 organize_stationary visual-only baseline diff --git a/egomimic/hydra_configs/experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_hybrid_openloop.yaml b/egomimic/hydra_configs/experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_hybrid_openloop.yaml index 5b40c4f13..fd2bd7695 100644 --- a/egomimic/hydra_configs/experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_hybrid_openloop.yaml +++ b/egomimic/hydra_configs/experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_hybrid_openloop.yaml @@ -1,7 +1,13 @@ # @package _global_ defaults: - /experiment/real/organize_stationary/variants/stationery_rl2_hpt300_visual_baseline_openloop + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/hpt_yam_visual - override /data: abc_arc/stationery_rl2_hpt_arc_hybrid_D40_M100_R24deg + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: stationery_rl2_hpt300_visual_hybrid_openloop description: HPT300M RL2 organize_stationary visual-only hybrid D40 M100 R24deg diff --git a/egomimic/hydra_configs/experiment/real/wireless_earbuds/arc_dur.yaml b/egomimic/hydra_configs/experiment/real/wireless_earbuds/arc_dur.yaml index ccf5ce8cf..b06bd1e28 100644 --- a/egomimic/hydra_configs/experiment/real/wireless_earbuds/arc_dur.yaml +++ b/egomimic/hydra_configs/experiment/real/wireless_earbuds/arc_dur.yaml @@ -1,6 +1,13 @@ # @package _global_ defaults: - /experiment/real/wireless_earbuds/arc_vel + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time + - override /data: abc_arc/earbuds_updated + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: wireless_earbuds_arc_dur description: Frozen earbuds HPT300, canonical absolute-duration ARC M200 D0.33 R100 diff --git a/egomimic/hydra_configs/experiment/real/wireless_earbuds/arc_vel.yaml b/egomimic/hydra_configs/experiment/real/wireless_earbuds/arc_vel.yaml index a44589885..24778f5a2 100644 --- a/egomimic/hydra_configs/experiment/real/wireless_earbuds/arc_vel.yaml +++ b/egomimic/hydra_configs/experiment/real/wireless_earbuds/arc_vel.yaml @@ -2,6 +2,13 @@ defaults: - /experiment/real/wireless_earbuds/baseline - /experiment/_shared/frozen_yam_arc + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time + - override /data: abc_arc/earbuds_updated + - override /evaluator: eval_open_loop_sim + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb - _self_ name: wireless_earbuds_arc_vel description: Frozen earbuds HPT300, canonical velocity ARC M200 D0.33 R100 diff --git a/egomimic/hydra_configs/experiment/real/wireless_earbuds/baseline.yaml b/egomimic/hydra_configs/experiment/real/wireless_earbuds/baseline.yaml index 69d68abd8..8052ea3fc 100644 --- a/egomimic/hydra_configs/experiment/real/wireless_earbuds/baseline.yaml +++ b/egomimic/hydra_configs/experiment/real/wireless_earbuds/baseline.yaml @@ -1,8 +1,14 @@ # @package _global_ defaults: -- /experiment/_shared/frozen_yam/earbuds_updated_hpt300 -- override /model: abc_arc/frozen_yam_hpt300_time -- _self_ + - /experiment/_shared/frozen_yam/earbuds_updated_hpt300 + # Shared parents supply task settings; these links select every component. + - override /model: abc_arc/frozen_yam_hpt300_time + - override /data: abc_arc/earbuds_updated + - override /evaluator: frozen_yam_time + - override /trainer: ddp + - override /callbacks: checkpoints + - override /logger: wandb + - _self_ frozen_yam: variant: time action_dim: 14 diff --git a/tests/test_abc_arc_experiment_layout.py b/tests/test_abc_arc_experiment_layout.py index 305d71641..497d7362d 100644 --- a/tests/test_abc_arc_experiment_layout.py +++ b/tests/test_abc_arc_experiment_layout.py @@ -4,6 +4,7 @@ from pathlib import Path import pytest +from hydra import compose, initialize_config_dir from hydra.utils import instantiate from omegaconf import OmegaConf @@ -18,6 +19,46 @@ "real/wireless_earbuds", "real/multitask", ) +REAL_ENTRYPOINTS = sorted( + path + for path in (CONFIGS / "experiment/real").rglob("*.yaml") + if "_base" not in path.parts +) +COMPONENT_GROUPS = ("model", "data", "evaluator", "trainer", "callbacks", "logger") + + +@pytest.mark.parametrize( + "path", + REAL_ENTRYPOINTS, + ids=lambda path: str(path.relative_to(CONFIGS / "experiment")), +) +def test_real_entrypoint_explicitly_links_components_with_one_selector(path): + """No extra model/data selection or synthetic audit bindings are needed.""" + document = OmegaConf.to_container(OmegaConf.load(path)) + explicit = {} + for entry in document["defaults"]: + if isinstance(entry, dict): + explicit.update(entry) + for group in COMPONENT_GROUPS: + key = f"override /{group}" + assert key in explicit + assert isinstance(explicit[key], str) and explicit[key] + assert (CONFIGS / group / f"{explicit[key]}.yaml").is_file() + + selector = path.relative_to(CONFIGS / "experiment").with_suffix("").as_posix() + with initialize_config_dir(version_base="1.2", config_dir=str(CONFIGS)): + cfg = compose( + config_name="train_zarr_cartesian", + overrides=[f"+experiment={selector}"], + return_hydra_config=True, + ) + for group in COMPONENT_GROUPS: + assert cfg.hydra.runtime.choices[group] == explicit[f"override /{group}"] + assert cfg[group] is not None + assert cfg.model.pipeline.stages + assert cfg.model.optimizer._target_ + assert cfg.data.train_datasets + assert cfg.data.valid_datasets @pytest.mark.parametrize("task", TASKS)