Reinforcement Learning Replications is a set of Pytorch implementations of reinforcement learning algorithms.
Project description
Reinforcement Learning Replications
Reinforcement Learning Replications is a set of Pytorch implementations of reinforcement learning algorithms.
Features
- Implement Algorithms
- Vanilla Policy Gradient (VPG)
- Trust Region Policy Optimization (TRPO)
- Proximal Policy Optimization (PPO)
- Deep Deterministic Policy Gradient (DDPG)
- Twin Delayed DDPG (TD3)
- Use Python standard logging library
- Support TensorBoard
Benchmarks
You can check the benchmark result here.
This benchmark is conducted based on the Benchmarks for Spinning Up Implementations.
All experiments were run for 3 random seeds each. All the details such as tensorboard and experiment logs, training scripts and trained models are stored in the benchmarks folder.
Example Code
Here is the code of training PPO on CartPole-v1 environment. You can run with this Google Colab notebook.
import gym
import torch
import torch.nn as nn
from rl_replicas.algorithms import PPO
from rl_replicas.networks import MLP
from rl_replicas.policies import CategoricalPolicy
from rl_replicas.samplers import BatchSampler
from rl_replicas.value_function import ValueFunction
env_name = "CartPole-v1"
output_dir = "/content/ppo"
num_epochs = 80
seed = 0
network_hidden_sizes = [64, 64]
policy_learning_rate = 3e-4
value_function_learning_rate = 1e-3
env = gym.make(env_name)
env.action_space.seed(seed)
observation_size: int = env.observation_space.shape[0]
action_size: int = env.action_space.n
policy_network: nn.Module = MLP(
sizes=[observation_size] + network_hidden_sizes + [action_size]
)
value_function_network: nn.Module = MLP(
sizes=[observation_size] + network_hidden_sizes + [1]
)
model: PPO = PPO(
CategoricalPolicy(
network=policy_network,
optimizer=torch.optim.Adam(policy_network.parameters(), lr=3e-4),
),
ValueFunction(
network=value_function_network,
optimizer=torch.optim.Adam(value_function_network.parameters(), lr=1e-3),
),
env,
BatchSampler(env, seed),
)
model.learn(num_epochs=num_epochs, output_dir=output_dir)
Contributing
All contributions are welcome.
Release Flow
- Create a release branch.
- A pull request from the release branch to the
mainbranch has the following:- Change logs in the body.
- The
releaselabel. - Commit that bumps up the version in
VERSION.
- Once the pull request is ready, merge the pull request. The CI will upload the package and create the release.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rl-replicas-0.0.5.tar.gz.
File metadata
- Download URL: rl-replicas-0.0.5.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e93bc531a214053bc04c66143926dbe278164cecdf70abd3178f29dc53dcc0e6
|
|
| MD5 |
cad1e75d35bdcf5929a1eacc1ac09bb6
|
|
| BLAKE2b-256 |
cde1effbe50517642e444e4d670aa972a20e765779d8348e1eedc8babd973b18
|
File details
Details for the file rl_replicas-0.0.5-py3-none-any.whl.
File metadata
- Download URL: rl_replicas-0.0.5-py3-none-any.whl
- Upload date:
- Size: 33.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9556c6f5d6b2d85e42300f43d9c70e916f63c5b36ba12dfd79e21527a3beac66
|
|
| MD5 |
e27cd89054581875ff5731406e9ee4c1
|
|
| BLAKE2b-256 |
3f4949dcaa12ca95adcea0c960d0b796ec012d6d3090a5c9e73b1df7ee7ce7ff
|