Implementation:Facebookresearch Habitat lab PPOTrainer eval checkpoint
| Knowledge Sources | |
|---|---|
| Domains | Hierarchical_RL, Evaluation |
| Last Updated | 2026-02-15 02:00 GMT |
Overview
Concrete checkpoint evaluation method for both flat and hierarchical policies, delegating to HabitatEvaluator for episode execution and metric collection.
Description
The PPOTrainer._eval_checkpoint method loads a policy checkpoint, creates evaluation environments, initializes the evaluator, and runs the agent through evaluation episodes. For hierarchical policies, it loads the full HierarchicalPolicy with all skill checkpoints. Rearrangement-specific metrics (composite_success, rearrangement_success, force metrics) are collected alongside standard navigation metrics.
Usage
Called with --run-type eval from the command line, or programmatically by passing a checkpoint path.
Code Reference
Source Location
- Repository: habitat-lab
- File: habitat-baselines/habitat_baselines/rl/ppo/ppo_trainer.py
- Lines: L803-902 (_eval_checkpoint), L294-328 (save_checkpoint)
Signature
class PPOTrainer(BaseRLTrainer):
def _eval_checkpoint(
self,
checkpoint_path: str,
writer: TensorboardWriter,
checkpoint_index: int = 0,
) -> None:
"""
Evaluate a single checkpoint.
Args:
checkpoint_path: Path to .pth checkpoint file
writer: TensorBoard writer for logging
checkpoint_index: Index for naming in logs
"""
Import
from habitat_baselines.rl.ppo.ppo_trainer import PPOTrainer
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| checkpoint_path | str | Yes | Path to trained checkpoint file |
| writer | TensorboardWriter | Yes | Writer for logging metrics |
| checkpoint_index | int | No | Index for log naming (default 0) |
Outputs
| Name | Type | Description |
|---|---|---|
| Metrics | Dict[str, float] | Aggregated rearrangement metrics logged to writer |
| Videos | .mp4 files | Optional evaluation recordings |
Usage Examples
Evaluate HRL Checkpoint
python -u habitat-baselines/habitat_baselines/run.py \
--exp-config habitat-baselines/habitat_baselines/config/rearrange/rl_hierarchical.yaml \
--run-type eval \
habitat_baselines.eval.video_option='["disk"]' \
habitat_baselines.eval_ckpt_path_dir=checkpoints/rl_hierarchical.pth