--- library_name: stable-baselines3 tags: - Pendulum-v1 - deep-reinforcement-learning - reinforcement-learning - stable-baselines3 model-index: - name: PPO results: - metrics: - type: mean_reward value: -230.42 +/- 142.54 name: mean_reward task: type: reinforcement-learning name: reinforcement-learning dataset: name: Pendulum-v1 type: Pendulum-v1 --- # **PPO** Agent playing **Pendulum-v1** This is a trained model of a **PPO** agent playing **Pendulum-v1** using the [stable-baselines3 library](https://github.com/DLR-RM/stable-baselines3) and the [RL Zoo](https://github.com/DLR-RM/rl-baselines3-zoo). The RL Zoo is a training framework for Stable Baselines3 reinforcement learning agents, with hyperparameter optimization and pre-trained agents included. ## Usage (with SB3 RL Zoo) RL Zoo: https://github.com/DLR-RM/rl-baselines3-zoo
SB3: https://github.com/DLR-RM/stable-baselines3
SB3 Contrib: https://github.com/Stable-Baselines-Team/stable-baselines3-contrib ``` # Download model and save it into the logs/ folder python -m rl_zoo3.load_from_hub --algo ppo --env Pendulum-v1 -orga sb3 -f logs/ python enjoy.py --algo ppo --env Pendulum-v1 -f logs/ ``` ## Training (with the RL Zoo) ``` python train.py --algo ppo --env Pendulum-v1 -f logs/ # Upload the model and generate video (when possible) python -m rl_zoo3.push_to_hub --algo ppo --env Pendulum-v1 -f logs/ -orga sb3 ``` ```python from stable_baselines3 import PPO from stable_baselines3.common.env_util import make_vec_env # Create the environment env_id = "Pendulum-v1" env = make_vec_env(env_id, n_envs=1) # Instantiate the agent model = PPO( "MlpPolicy", env, gamma=0.98, # Using https://proceedings.mlr.press/v164/raffin22a.html use_sde=True, sde_sample_freq=4, learning_rate=1e-3, verbose=1, ) # Train the agent model.learn(total_timesteps=int(1e5)) ``` ## Hyperparameters ```python OrderedDict([('clip_range', 0.2), ('ent_coef', 0.0), ('gae_lambda', 0.95), ('gamma', 0.9), ('learning_rate', 0.001), ('n_envs', 4), ('n_epochs', 10), ('n_steps', 1024), ('n_timesteps', 100000.0), ('policy', 'MlpPolicy'), ('sde_sample_freq', 4), ('use_sde', True), ('normalize', False)]) ```