--- library_name: stable-baselines3 tags: - LunarLander-v2 - deep-reinforcement-learning - reinforcement-learning - stable-baselines3 model-index: - name: PPO results: - task: type: reinforcement-learning name: reinforcement-learning dataset: name: LunarLander-v2 type: LunarLander-v2 metrics: - type: mean_reward value: 250.20 +/- 26.64 name: mean_reward verified: false --- # **PPO** Agent playing **LunarLander-v2** This is a trained model of a **PPO** agent playing **LunarLander-v2** using the [stable-baselines3 library](https://github.com/DLR-RM/stable-baselines3). ## Usage (with Stable-baselines3) TODO: Add your code ```python import gym from huggingface_sb3 import load_from_hub, package_to_hub, push_to_hub from huggingface_hub import notebook_login # To log to our Hugging Face account to be able to upload models to the Hub. from stable_baselines3 import PPO from stable_baselines3.common.evaluation import evaluate_policy from stable_baselines3.common.env_util import make_vec_env # Create the environment env = make_vec_env('LunarLander-v2', n_envs=16) # Define a PPO MlpPolicy architecture model = PPO( policy = 'MlpPolicy', env = env, n_steps = 1024, batch_size = 64, n_epochs = 4, gamma = 0.999, gae_lambda = 0.98, ent_coef = 0.01, verbose=1) # Train the policy for 1,000,000 timesteps model.learn(total_timesteps=int(1e6)) model_name = "lunar-landing-agent-sid" model.save(model_name) # Evaluate policy # Create a new environment for evaluation eval_env = gym.make("LunarLander-v2") # Evaluate the model with 10 evaluation episodes and deterministic=True mean_reward, std_reward = evaluate_policy(model, eval_env,10, True) # Print the results print(f"mean_reward={mean_reward:.2f} +/- {std_reward}") # Package to hub from stable_baselines3.common.vec_env import DummyVecEnv from stable_baselines3.common.env_util import make_vec_env from huggingface_sb3 import package_to_hub repo_id = "sidraina/ppo-LunarLander-v2" env_id = "LunarLander-v2" # Create the evaluation env eval_env = DummyVecEnv([lambda: gym.make(env_id)]) model_architecture = "PPO" commit_message = "First PPO LunarLander-v2 trained agent" # method save, evaluate, generate a model card and record a replay video of your agent before pushing the repo to the hub package_to_hub(model=model, model_name=model_name, model_architecture=model_architecture, env_id=env_id, eval_env=eval_env, repo_id=repo_id, commit_message=commit_message) ... ```