rllib
Reinforcement Learning Library
Installation
pip install pytorch-rllib
Usage
Implemented agents:
- CrossEntropy
- Value / Policy Iteration
- Q-Learning
- Expected Value SARSA
- Approximate Q-Learning
- DQN
- Rainbow
- REINFORCE
- A2C
import gym
import numpy as np
import torch
from rllib.qlearning import ApproximateQLearningAgent
from rllib.trainer import TrainerTorch as Trainer
from rllib.utils import set_global_seed
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# init environment
env = gym.make("CartPole-v0")
set_global_seed(seed=42, env=env)
n_actions = env.action_space.n
n_state = env.observation_space.shape[0]
# init torch model
model = torch.nn.Sequential()
model.add_module("layer1", torch.nn.Linear(n_state, 128))
model.add_module("relu1", torch.nn.ReLU())
model.add_module("layer2", torch.nn.Linear(128, 64))
model.add_module("relu2", torch.nn.ReLU())
model.add_module("values", torch.nn.Linear(64, n_actions))
model = model.to(device)
# init agent
agent = ApproximateQLearningAgent(
model=model,
alpha=0.5,
epsilon=0.5,
discount=0.99,
n_actions=n_actions,
)
# train
optimizer = torch.optim.Adam(model.parameters(), lr=1e-4)
trainer = Trainer(env=env)
train_rewards = trainer.train(
agent=agent,
optimizer=optimizer,
n_epochs=20,
n_sessions=100,
)
# train results
print(f"Mean train reward: {np.mean(train_rewards[-10:])}") # reward: 120.318
# inference
inference_reward = trainer.play_session(
agent=agent,
t_max=10**4,
)
# inference results
print(f"Inference reward: {inference_reward}") # reward: 171.0
More examples you can find here.
Requirements
Python >= 3.7
Citation
If you use rllib in a scientific publication, we would appreciate references to the following BibTex entry:
@misc{dayyass2022rllib,
author = {El-Ayyass, Dani},
title = {Reinforcement Learning Library},
howpublished = {\url{https://github.com/dayyass/rllib}},
year = {2022}
}
Metadata
Release files for pytorch-rllib 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytorch-rllib-0.1.2.tar.gz | 8.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytorch_rllib-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.8 kB
Release files / pytorch-rllib-0.1.2.tar.gz
| Download URL | pytorch-rllib-0.1.2.tar.gz |
|---|---|
| Size | 8.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
37348e1d0006abeef28b2194416c2322e1bbcb2d26a36d975518f0d01c9693ed
|
|
BLAKE2b-256 checksum How to use checksums |
8df9083ef2c8aad65d747990f8bdb14184f7fc7cd52a789ed24a1e3719edefdb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.7.5
|
Release files / pytorch_rllib-0.1.2-py3-none-any.whl
| Download URL | pytorch_rllib-0.1.2-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
93c9bf16ba4566f45d8377a98b96663bd6ce7fe8deabd980147ff484467512da
|
|
BLAKE2b-256 checksum How to use checksums |
e9a8b12dd6059112b75fec8fbb99d8bacf734412e0d5bab1edc2fae444c9313a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.7.5
|