HD-PPO Agent playing FrozenLake-v1
This is a trained HD-PPO (Hyperdimensional Proximal Policy Optimization) agent playing FrozenLake-v1 using gradient-adaptive Fractional Power Encoding (FPE) with a prune-and-fine-tune pipeline.
Published by LTU-AI.
Pipeline
- Train a teacher at D=64 with gradient-adaptive single-beta FPE.
- Prune by actor-weight importance through D=64 → 16 → 4.
- Fine-tune each pruned checkpoint with PPO.
Published checkpoint: seed 123, compact D=4 model (held-out eval mean reward 0.67 ± 0.47).
Usage
Install dependencies:
pip install -r requirements.txt
Evaluate the local checkpoint:
python enjoy.py --weights hdppo-FrozenLake-v1/weights.npz --episodes 10
Render episodes:
python enjoy.py --weights hdppo-FrozenLake-v1/weights.npz --render --episodes 3
Record a replay video:
python record_video.py --weights hdppo-FrozenLake-v1/weights.npz --output replay.mp4
Load from Hugging Face Hub:
python enjoy.py --weights LTU-AI/hdppo-FrozenLake-v1 --episodes 10
Training pipeline
Reproduce the teacher → prune → fine-tune workflow:
python run_prune_finetune_5seed.py
Hyperparameters
{
"env": "FrozenLake-v1",
"algo": "HD-PPO (gradient-adaptive FPE, discrete)",
"teacher_D": 64,
"pruned_D": 4,
"timesteps_per_stage": 1000000,
"seed": 123,
"is_slippery": true
}
Environment Arguments
{
"render_mode": "rgb_array",
"is_slippery": true
}
Model files
| File | Description |
|---|---|
hdppo-FrozenLake-v1/weights.npz |
Published actor (+ critic if HD) and FPE encoder (D=4) |
hdppo-FrozenLake-v1/weights_D64_teacher.npz |
Teacher checkpoint (D=64) |
replay.mp4 |
Sample rollout video from the published min-D checkpoint |
results.json |
Evaluation summary for the published checkpoint |
results_D64_teacher.json |
Evaluation summary for the teacher |
config.yml |
Training hyperparameters |
train_hdppo.py / training modules |
Self-contained training code |
Citation
If you use this model, please cite the HD-PPO / Hybrid-HD-PPO work.
Evaluation results
- mean_reward on FrozenLake-v1self-reported0.67 +/- 0.47