PPO Agent playing CarRacing-v3

Then, you can load the model using the following Python code:

import gymnasium as gym
from stable_baselines3 import PPO
from stable_baselines3.common.env_util import make_vec_env
from stable_baselines3.common.vec_env import VecTransposeImage
from stable_baselines3.common.atari_wrappers import WarpFrame

# Load the trained model
model = PPO.load("best-model.zip")

# Create the environment
env = make_vec_env("CarRacing-v3", n_envs=1, wrapper_class=WarpFrame)
env = VecFrameStack(env, n_stack=4)
env = VecTransposeImage(env)

# Reset the environment
obs, info = env.reset()

# Enjoy the trained agent
for _ in range(1000):
    action, _states = model.predict(obs, deterministic=True)
    obs, rewards, terminated, truncated, info = env.step(action)
    if terminated or truncated:
        obs, info = env.reset()
    env.render()

env.close()

Hugging Face Hub

You can also use the Hugging Face Hub to load the model. First, you need to install the Hugging Face Hub library:

pip install huggingface_hub

Then, you can load the model from the hub using the following code:

from huggingface_hub import hf_hub_download
import torch as th
import gymnasium as gym
from stable_baselines3 import PPO
from stable_baselines3.common.env_util import make_vec_env
from stable_baselines3.common.vec_env import VecTransposeImage
from stable_baselines3.common.atari_wrappers import WarpFrame

# Download the model from the Hub
model_path = hf_hub_download(repo_id="kuds/car-racing-ppo", filename="best-model.zip")

# Load the model
model = PPO.load(model_path)

# Create the environment
env = make_vec_env("CarRacing-v3", n_envs=1, wrapper_class=WarpFrame)
env = VecFrameStack(env, n_stack=4)
env = VecTransposeImage(env)

# Enjoy the trained agent
obs = env.reset()
for i in range(1000):
    action, _states = model.predict(obs, deterministic=True)
    obs, rewards, dones, info = env.step(action)
    env.render("human")
Downloads last month
23
Video Preview
loading

Evaluation results