|
|
--- |
|
|
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.") |
|
|
|
|
|
... |
|
|
``` |
|
|
|