FlowPush / README.md
WillXH's picture
Upload folder using huggingface_hub
37f2b7d verified
|
Raw
History Blame Contribute Delete
3.2 kB
---
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.