| # @package _global_ | |
| # ORIGINAL FastWAM (full 30/30 MoT, 6.0B) FROM SCRATCH on fruit_pick (100 | |
| # demos, the entire dataset -- no val split, see fruit_pick_2cam.yaml). | |
| # resume: null (Wan2.2 base video expert + ActionDiT linear-interp init). | |
| # User decision 2026-08-09: 2 GPUs (not George's pcbnew100 4-GPU scratch | |
| # pattern) x batch_size 8 x grad_accum 2 = global batch 32 -- matches the | |
| # ORIGINAL place_cube_fastwam_scratch.yaml recipe shape, not pcbnew100's | |
| # 4x8x1. 30 epochs, no validation. | |
| # | |
| # save_every below is a PLACEHOLDER (2445, pcbnew100's value) -- the | |
| # launching sbatch (slurm/train_fruit_pick_fastwam_scratch.sbatch) computes | |
| # the real value from data/fruit_pick/meta/info.json's total_frames at | |
| # submit time and passes it as a CLI override, since fruit_pick's actual | |
| # frame count isn't known until the data lands. Don't trust this value if | |
| # running run_one.sh directly without that override. | |
| defaults: | |
| - override /data: fruit_pick_2cam | |
| - override /model: lift_fastwam_full | |
| - _self_ | |
| # dataloading | |
| batch_size: 8 # 2 GPUs x 8 x accum 2 = global 32 | |
| num_workers: 12 | |
| # scheduler | |
| lr_scheduler_type: "cosine" | |
| learning_rate: 1e-4 | |
| num_epochs: 30 | |
| max_steps: null | |
| log_every: 10 | |
| save_every: 2445 # PLACEHOLDER -- overridden at launch, see header | |
| eval_every: 0 | |
| # training | |
| gradient_accumulation_steps: 2 | |
| weight_decay: 1e-2 | |
| resume: null | |