File size: 1,657 Bytes
952993c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# @package _global_
# FlashWAM (M1_FusedKV_RopeFixed) 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 + random 1-layer action expert). 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_flashwam_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_flashwam_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_flashwam_m1_fusedkv_ropefixed
  - _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

# No model.proprio_dim override needed: fruit_pick's state was rewritten to
# the standard 8-dim eef_pos+axisangle+gripper convention (see
# fruit_pick_2cam.yaml header + fix_fruit_pick_state_schema.py), matching
# lift_flashwam_m1_fusedkv_ropefixed.yaml's hardcoded proprio_dim: 8 as-is.