FlowPush checkpoints
Evaluation-only checkpoints (EMA weights, fitted normalizer, resolved config, git SHA) for 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
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.