模型:
araffin/ppo-LunarLander-v2
这是一个经过训练的 PPO 代理,在 LunarLander-v2 上进行游戏,使用了 stable-baselines3 library 。
from huggingface_sb3 import load_from_hub from stable_baselines3 import PPO from stable_baselines3.common.env_util import make_vec_env from stable_baselines3.common.evaluation import evaluate_policy # Download checkpoint checkpoint = load_from_hub("araffin/ppo-LunarLander-v2", "ppo-LunarLander-v2.zip") # Load the model model = PPO.load(checkpoint) env = make_vec_env("LunarLander-v2", n_envs=1) # Evaluate print("Evaluating model") mean_reward, std_reward = evaluate_policy( model, env, n_eval_episodes=20, deterministic=True, ) print(f"Mean reward = {mean_reward:.2f} +/- {std_reward:.2f}") # Start a new episode obs = env.reset() try: while True: action, _states = model.predict(obs, deterministic=True) obs, rewards, dones, info = env.step(action) env.render() except KeyboardInterrupt: pass
from stable_baselines3 import PPO from stable_baselines3.common.env_util import make_vec_env from stable_baselines3.common.callbacks import EvalCallback # Create the environment env_id = "LunarLander-v2" n_envs = 16 env = make_vec_env(env_id, n_envs=n_envs) # Create the evaluation envs eval_envs = make_vec_env(env_id, n_envs=5) # Adjust evaluation interval depending on the number of envs eval_freq = int(1e5) eval_freq = max(eval_freq // n_envs, 1) # Create evaluation callback to save best model # and monitor agent performance eval_callback = EvalCallback( eval_envs, best_model_save_path="./logs/", eval_freq=eval_freq, n_eval_episodes=10, ) # Instantiate the agent # Hyperparameters from https://github.com/DLR-RM/rl-baselines3-zoo model = PPO( "MlpPolicy", env, n_steps=1024, batch_size=64, gae_lambda=0.98, gamma=0.999, n_epochs=4, ent_coef=0.01, verbose=1, ) # Train the agent (you can kill it before using ctrl+c) try: model.learn(total_timesteps=int(5e6), callback=eval_callback) except KeyboardInterrupt: pass # Load best model model = PPO.load("logs/best_model.zip")