Train and Evaluate

Policy families differ in training runtime and input format, but they share dataset semantics and evaluation behavior.

Choose the action interface first

Record and evaluate with compatible task semantics:

  • an EE-absolute source dataset supports the maintained EE-relative model paths;
  • a BaseJoint-absolute source dataset supports BaseJoint-relative model paths;
  • EE-delta recordings are not accepted by the maintained relative DP and OpenPI conversion paths.

Do not infer semantics from action dimension alone. Read meta/info.json and the policy checkpoint metadata.

Choose a policy guide

Family Canonical-data boundary Runtime characteristic
ACT direct logical LeRobot view single-process training; in-process evaluation
Diffusion Policy validated UMI zarr conversion Hydra training; in-process evaluation
PI0 / PI0.5 pinned OpenPI export plus norm stats separate OpenPI server and Isaac client

Common evaluation interface

The learned-policy entrypoints are:

python -m am_isaac_il.policies.act.eval --help
python -m am_isaac_il.policies.dp.eval --help
python -m am_isaac_il.policies.pi.eval --help

All require --task and expose the same core options: --num-rollouts, --num-envs, --episode-length-s, --seed, --disturbance, --save-video, --video-camera-names, --progress-every, --output-dir, --headless, and --device.

ACT and DP load a local --checkpoint. PI connects to --host and --port, requires a language --prompt, and records a caller-supplied --policy-id. DP currently supports exactly one evaluation environment.

Common artifacts

By default, evaluation writes to:

outputs/eval/<act|dp|pi>/<task>/<timestamp>/

Each completed run contains:

results.txt
eval_summary.json
tracking/
  tracking.jsonl
  analysis.json
videos/                 # when --save-video is enabled

Pass --output-dir for an exact location. See Evaluation Outputs before comparing runs.