mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-24 18:26:11 +00:00
test(groot): move parity producer into utils/ package
Mirror the tests/policies/pi0_pi05/utils convention: move dump_original_n1_7.py into a tests/policies/groot/utils/ package (with __init__.py) and update all path references in the test docstring/skip-message and the policy README.
This commit is contained in:
committed by
Andy Wrenn
parent
9db6a8ae0f
commit
628e8fe3b6
@@ -48,7 +48,7 @@ is itself a defaulted dataclass, so the original config dataclasses fail to impo
|
|||||||
|
|
||||||
So the test uses a **producer / consumer** split across two venvs:
|
So the test uses a **producer / consumer** split across two venvs:
|
||||||
|
|
||||||
1. **Producer** — `tests/policies/groot/dump_original_n1_7.py`, run in the *original*
|
1. **Producer** — `tests/policies/groot/utils/dump_original_n1_7.py`, run in the *original*
|
||||||
gr00t venv. For each embodiment it builds dummy inputs generically from the
|
gr00t venv. For each embodiment it builds dummy inputs generically from the
|
||||||
checkpoint metadata (state dims from `statistics.json`; camera/language keys from
|
checkpoint metadata (state dims from `statistics.json`; camera/language keys from
|
||||||
the processor modality configs), runs the original model, and saves the exact
|
the processor modality configs), runs the original model, and saves the exact
|
||||||
@@ -82,7 +82,7 @@ PY
|
|||||||
|
|
||||||
# 1) Produce the original-side artifacts for all embodiments (original gr00t venv, CUDA)
|
# 1) Produce the original-side artifacts for all embodiments (original gr00t venv, CUDA)
|
||||||
CUDA_VISIBLE_DEVICES=0 /path/to/Isaac-GR00T/.venv-original/bin/python \
|
CUDA_VISIBLE_DEVICES=0 /path/to/Isaac-GR00T/.venv-original/bin/python \
|
||||||
tests/policies/groot/dump_original_n1_7.py \
|
tests/policies/groot/utils/dump_original_n1_7.py \
|
||||||
--ckpt "$CKPT" --out-dir tests/policies/groot/artifacts --device cuda --seed 42
|
--ckpt "$CKPT" --out-dir tests/policies/groot/artifacts --device cuda --seed 42
|
||||||
|
|
||||||
# 2) Run the parity test (LeRobot venv) — one parametrized case per embodiment
|
# 2) Run the parity test (LeRobot venv) — one parametrized case per embodiment
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ in the checkpoint.
|
|||||||
|
|
||||||
To keep the comparison fair, the original outputs + the exact collated inputs are
|
To keep the comparison fair, the original outputs + the exact collated inputs are
|
||||||
produced once per embodiment in the original ``gr00t`` env via the companion script
|
produced once per embodiment in the original ``gr00t`` env via the companion script
|
||||||
``dump_original_n1_7.py`` (next to this file) and saved to per-tag ``.npz`` files.
|
``utils/dump_original_n1_7.py`` (in the ``utils`` package next to this file) and saved
|
||||||
|
to per-tag ``.npz`` files.
|
||||||
This test discovers those artifacts, replays the identical inputs through the LeRobot
|
This test discovers those artifacts, replays the identical inputs through the LeRobot
|
||||||
model, and compares.
|
model, and compares.
|
||||||
|
|
||||||
@@ -65,7 +66,7 @@ def _artifact_dir() -> Path:
|
|||||||
|
|
||||||
Self-contained by default: a sibling ``artifacts/`` directory next to this test.
|
Self-contained by default: a sibling ``artifacts/`` directory next to this test.
|
||||||
Override with ``GROOT_N1_7_PARITY_DIR`` (e.g. to point at a scratch location).
|
Override with ``GROOT_N1_7_PARITY_DIR`` (e.g. to point at a scratch location).
|
||||||
The directory is read-only here -- it is populated by ``dump_original_n1_7.py``
|
The directory is read-only here -- it is populated by ``utils/dump_original_n1_7.py``
|
||||||
run in the original gr00t environment; the test never creates it.
|
run in the original gr00t environment; the test never creates it.
|
||||||
"""
|
"""
|
||||||
env = os.environ.get("GROOT_N1_7_PARITY_DIR")
|
env = os.environ.get("GROOT_N1_7_PARITY_DIR")
|
||||||
@@ -169,7 +170,7 @@ _ARTIFACTS = _discover_artifacts()
|
|||||||
not _ARTIFACTS,
|
not _ARTIFACTS,
|
||||||
reason=(
|
reason=(
|
||||||
"No GR00T N1.7 parity artifacts found. Generate them first in the original gr00t "
|
"No GR00T N1.7 parity artifacts found. Generate them first in the original gr00t "
|
||||||
"env:\n .venv-original/bin/python tests/policies/groot/dump_original_n1_7.py "
|
"env:\n .venv-original/bin/python tests/policies/groot/utils/dump_original_n1_7.py "
|
||||||
"--ckpt <ckpt> --out-dir tests/policies/groot/artifacts --device cuda"
|
"--ckpt <ckpt> --out-dir tests/policies/groot/artifacts --device cuda"
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
"""Utilities shared by GR00T policy tests."""
|
||||||
+1
-1
@@ -25,7 +25,7 @@ The companion pytest (run in the LeRobot env) loads each .npz, replays the ident
|
|||||||
inputs + seed through the LeRobot GR00T N1.7 model, and asserts the outputs match.
|
inputs + seed through the LeRobot GR00T N1.7 model, and asserts the outputs match.
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
.venv-original/bin/python tests/policies/groot/dump_original_n1_7.py \
|
.venv-original/bin/python tests/policies/groot/utils/dump_original_n1_7.py \
|
||||||
--ckpt <path-to-GR00T-N1.7-LIBERO/libero_10> \
|
--ckpt <path-to-GR00T-N1.7-LIBERO/libero_10> \
|
||||||
--out-dir tests/policies/groot/artifacts \
|
--out-dir tests/policies/groot/artifacts \
|
||||||
[--tags libero_sim,oxe_droid_relative_eef_relative_joint,...] \
|
[--tags libero_sim,oxe_droid_relative_eef_relative_joint,...] \
|
||||||
Reference in New Issue
Block a user