Views
No views yet
1import gymnasium as gym
2from stable_baselines3 import PPO
3from stable_baselines3.common.env_util import make_vec_env
4from stable_baselines3.common.evaluation import evaluate_policy
5from stable_baselines3.common.monitor import Monitor
6
7# Create the vectorized environment
8env = make_vec_env('LunarLander-v2', n_envs=16)
9
10# Create the PPO model
11model = PPO(
12 policy = 'MlpPolicy',
13 env = env,
14 n_steps = 1024,
15 batch_size = 64,
16 n_epochs = 4,
17 gamma = 0.999,
18 gae_lambda = 0.98,
19 ent_coef = 0.01,
20 verbose=1
21)
22
23# Train the model for 1,000,000 timesteps
24model.learn(total_timesteps=1000000)
25
26# Save the model
27model_name = "ppo-LunarLander-v2"
28model.save(model_name)
29
30# Create evaluation environment and evaluate the model
31eval_env = Monitor(gym.make("LunarLander-v2", render_mode='rgb_array'))
32mean_reward, std_reward = evaluate_policy(model, eval_env, n_eval_episodes=10, deterministic=True)
33
34# Print evaluation results
35print(f"mean_reward={mean_reward:.2f} +/- {std_reward}")
36...