--- 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: 255.06 +/- 19.25 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 # ============================================== # 🚀 PLANTILLA COMPLETA PARA GOOGLE COLAB (LunarLander-v2) # Entrena y evalúa un modelo PPO para LunarLander-v2 # ============================================== # 📌 Paso 1: Instalar Dependencias !apt install swig cmake ffmpeg python3-opengl xvfb -y !pip install stable-baselines3[extra] gymnasium[box2d] huggingface_sb3 pyvirtualdisplay shimmy # 📌 Paso 2: Importar Librerías import os import gymnasium as gym import numpy as np from stable_baselines3 import PPO from stable_baselines3.common.env_util import make_vec_env from stable_baselines3.common.monitor import Monitor from stable_baselines3.common.evaluation import evaluate_policy from pyvirtualdisplay import Display # 📌 Configurar una pantalla virtual (para renderizar el entorno en Google Colab) os.system('Xvfb :1 -screen 0 1024x768x24 &') os.environ['DISPLAY'] = ':1' print("✅ Dependencias instaladas y pantalla virtual configurada.") # 📌 Paso 3: Forzar el uso de LunarLander-v2 (Evitar el error de Gymnasium) try: env = make_vec_env("LunarLander-v2", n_envs=16) print("✅ Entorno vectorizado creado correctamente.") except: print("⚠️ Error con LunarLander-v2, intentando con compatibilidad.") import shimmy env = make_vec_env("LunarLander-v2", n_envs=16, render_mode="rgb_array") print("✅ Entorno configurado correctamente.") # 📌 Paso 4: Definir y Entrenar el Modelo PPO 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 ) print("✅ Modelo PPO definido correctamente.") # 🏋️‍♂️ Entrenamiento print("🏋️‍♂️ Entrenando el modelo... esto tomará tiempo ☕") model.learn(total_timesteps=1000000) print("✅ Entrenamiento completado.") # 📌 Paso 5: Guardar el Modelo model_name = "ppo-LunarLander-v2" model.save(model_name) print(f"✅ Modelo guardado como {model_name}.zip") # 📌 Descargar el modelo a tu PC from google.colab import files files.download(f"{model_name}.zip") # 📌 Paso 6: Evaluar el Modelo eval_env = Monitor(gym.make("LunarLander-v2")) # Asegurar compatibilidad mean_reward, std_reward = evaluate_policy(model, eval_env, n_eval_episodes=10, deterministic=True) print(f"📊 Evaluación completada: mean_reward = {mean_reward:.2f} +/- {std_reward:.2f}") # 📌 Validar si pasamos la certificación if mean_reward - std_reward >= 200: print("🎉 ¡Modelo aprobado para la certificación de Hugging Face! 🚀") else: print("⚠️ No alcanzaste el mínimo de 200, intenta entrenar más tiempo.") print("✅ Todo el proceso ha finalizado correctamente.") ... ```