--- license: mit library_name: pytorch tags: - robotics - imitation-learning - diffusion-policy - flow-matching - push-t datasets: - WillXH/pushf-demos --- # FlowPush checkpoints Evaluation-only checkpoints (EMA weights, fitted normalizer, resolved config, git SHA) for [FlowPush](https://github.com/WilliamHangXu/FlowPush): flow-matching and diffusion visuomotor policies on Push-T, a 1-step distilled student, and Push-F transfer policies. Each file is training seed 0 of the corresponding row in the repository README (plus the seed-2 teacher); scores are that seed's result on the 100-episode final holdout — † marks models outside the holdout list, scored on the 50-episode development set. The README reports 3-seed means. | file | model | success@0.95 (final holdout) | |---|---|---| | `pusht_ddpm_unet_seed0.pt` | DDPM U-Net, state obs, 100 steps | 0.62 | | `pusht_fm_unet_seed0.pt` | flow-matching U-Net, state obs, 8 Euler steps | 0.65 | | `pusht_fm_unet_seed2.pt` | flow-matching U-Net, state obs — the distillation teacher | 0.61 | | `pusht_fm_dit_seed0.pt` | flow-matching DiT (7.8M params), state obs, 8 steps | 0.34† | | `pusht_fm_unet_image_seed0.pt` | flow-matching U-Net, 96×96 RGB obs, 8 steps | 0.30† | | `pusht_2rf_seed0.pt` | 2-rectified flow (K = 8), 1 step | 0.47 | | `pusht_2rf_k32_seed0.pt` | 2-rectified flow (K = 32) — parent of the 1-step students | 0.47 | | `pusht_1step_distilled_seed0.pt` | 1-step distilled student (trained from `pusht_2rf_k32_seed0.pt`) | 0.40 | | `pushf_scratch_n100_seed0.pt` | Push-F, trained from scratch on 100 demos, 8 steps | 0.70 | | `pushf_finetune_n100_seed0.pt` | Push-F, fine-tuned from the Push-T teacher on 100 demos (lr 1e-4), 8 steps | 0.67 | `eval_records.tgz` holds the per-episode evaluation records behind the repository's `results/*.csv`. All three student seeds share the single K = 32 parent above, which was trained from the seed-2 teacher; the repository's `results/lineage.csv` records parents and SHA-256 hashes, and the 2-RF and student checkpoints embed their coupling manifest (teacher SHA-256, K, ODE steps). The original 50-episode evaluation set was consulted during exploratory work in Parts 2 and 3, so numbers from it are development results (marked †). A final holdout, pre-specified and committed before evaluation (100 fresh episodes, one evaluation per model; `docs/FINAL_HOLDOUT.md` in the repository) re-scored every released Push-T/Push-F policy: FM@8 0.617 ± 0.031, DDPM@100 0.537 ± 0.127, 1-step student 0.427 ± 0.025 vs its K = 32 parent 0.470 — the student's development-set edge did not survive. The repository README's Final holdout section is the project's claim of record; `eval_records.tgz` includes the `final_*.json` records. ## Usage ```bash git clone https://github.com/WilliamHangXu/FlowPush.git && cd FlowPush uv sync && make data && make checkpoints uv run python evaluate.py --ckpt checkpoints/pusht_fm_unet_seed0.pt --seeds final --points euler:8 # Push-F policies: add --env pushf ``` Samplers and step counts are evaluation-time choices (`--points euler:1`, `ddim:16`, …). Checkpoints are self-contained: no side files are needed. ## License MIT.