| --- |
| 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. |
|
|