Views
No views yet
LunarLander-v3, trained using Stable Baselines3 on an NVIDIA A100 GPU.| Metric | Score | Description |
|---|---|---|
| Best Batch Mean (N=10) | 293.42 | Average of the top 200-test batch. Achieved SOTA performance. |
| Global Mean | 272.72 +/- 25.17 | Average over random seeds (Standard Evaluation). |
| Highest Single Score | 317 | Near-perfect landing with minimal fuel consumption. |
replay.mp4) captures exactly the first run of the batch, where the agent scored 300.[300, 312, 309, 278, 286, 316, 303, 235, 317, 275]Observation: Notice the "Free-Fall Strategy." The agent minimizes main engine usage, relying on gravity for descent, and executes high-precision braking only in the final frames to mitigate impact force.
ent_coef (Entropy) to 0.0 to freeze the policy's decision-making structure.
learning_rate to 1e-6 to prevent catastrophic forgetting.clip_range to 0.02 - 0.05.
gae_lambda to 0.90 to increase sensitivity to immediate future rewards (impact).
clip_range to 0.03 to allow for strong "emergency braking" actions at the very last moment.1model = PPO(
2 policy="MlpPolicy",
3 env="LunarLander-v3",
4 learning_rate=4e-6, # Micro-tuned for reflex updates
5 n_steps=2048,
6 batch_size=128,
7 n_epochs=10,
8 gamma=0.999, # Long-term planning
9 gae_lambda=0.90, # High sensitivity to immediate impact
10 clip_range=0.03, # Strict constraint for smooth trajectory
11 ent_coef=0.0, # No exploration (Pure Exploitation)
12 vf_coef=1.0, # High precision value estimation
13 policy_kwargs=dict(net_arch=[256, 256]),
14 device="cuda" # Trained on NVIDIA A100
15)
16
17## 💻 Usage
18
19import gymnasium as gym
20from stable_baselines3 import PPO
21
22# Load the model
23# You can replace the repo_id with your own if you fork this
24model = PPO.load("beachcities/ppo-LunarLander-v3-A100-SOTA")
25
26# Create environment
27env = gym.make("LunarLander-v3", render_mode="human")
28
29# Enjoy the SOTA performance
30obs, _ = env.reset()
31done = False
32while not done:
33 action, _ = model.predict(obs, deterministic=True)
34 obs, _, terminated, truncated, _ = env.step(action)
35 done = terminated or truncated
36
37---
38*Authored by Beachcities.*
39*Trained on NVIDIA A100.*