https://github.com/ucla-rlcourse/RLexample
Some basic examples of playing with RL
https://github.com/ucla-rlcourse/RLexample
Last synced: 2 months ago
JSON representation
Some basic examples of playing with RL
- Host: GitHub
- URL: https://github.com/ucla-rlcourse/RLexample
- Owner: ucla-rlcourse
- Created: 2019-01-09T03:25:23.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-01-09T21:39:42.000Z (6 months ago)
- Last Synced: 2025-04-20T15:55:11.438Z (3 months ago)
- Language: Python
- Size: 17.9 MB
- Stars: 1,238
- Watchers: 19
- Forks: 302
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Some basic examples for reinforcement learning
## Installing Anaconda and Gymnasium
* Download and install Anaconda [here](https://www.anaconda.com/download)
* Install the essential dev libraries on Linux or WSL (Windows Subsystem for Linux)
```
sudo apt-get update
sudo apt-get install build-essential
```* Create conda env for managing dependencies and activate the conda env
```
conda create -n conda_env python=3.10
conda activate conda_env
```
* Install gymnasium (Dependencies installed by pip will also go to the conda env)
```
pip install gymnasium[all]
pip install gymnasium[atari]
pip install gymnasium[accept-rom-license]# Try the next line if box2d-py fails to install.
conda install swig
```
* Install ai2thor if you want to run navigation_agent.py
```
pip install ai2thor==2.4.10
```
* Install torch with either conda or pip
```
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
```
```
pip install torch torchvision torchaudio
```
* Install other dependencies
```
pip install numpy pandas matplotlib
```## Examples
* Play with the environment and visualize the agent behaviour
```
import gymnasium as gym
render = True # switch if visualize the agent
if render:
env = gym.make('CartPole-v0', render_mode='human')
else:
env = gym.make('CartPole-v0')
env.reset(seed=0)
for _ in range(1000):
env.step(env.action_space.sample()) # take a random action
env.close()
```* Random play with ```CartPole-v0```
```
import gymnasium as gym
env = gym.make('CartPole-v0')
for i_episode in range(20):
observation = env.reset()
for t in range(100):
print(observation)
action = env.action_space.sample()
observation, reward, terminated, truncated, info = env.step(action)
done = np.logical_or(terminated, truncated)
env.close()
```* Example code for random playing (```Pong-ram-v0```,```Acrobot-v1```,```Breakout-v0```)
```
python my_random_agent.py Pong-ram-v0
```* Very naive learnable agent playing ```CartPole-v0``` or ```Acrobot-v1```
```
python my_learning_agent.py CartPole-v0```
* Playing Pong on CPU (with a great [blog](http://karpathy.github.io/2016/05/31/rl/)). One pretrained model is ```pong_model_bolei.p```(after training 20,000 episodes), which you can load in by replacing [save_file](https://github.com/metalbubble/RLexample/blob/master/pg-pong.py#L15) in the script.
```
python pg-pong.py```
* Random navigation agent in [AI2THOR](https://github.com/allenai/ai2thor)
```
python navigation_agent.py
```* Training PPO agent to control car with [MetaDrive](https://github.com/metadriverse/metadrive) and [Stable-Baselines3](https://github.com/DLR-RM/stable-baselines3):
https://metadrive-simulator.readthedocs.io/en/latest/training.html
* Training PPO agent to control robot dog (quadruped robot) with [Genesis](https://genesis-world.readthedocs.io/en/latest/index.html) and [rsl_rl](https://github.com/leggedrobotics/rsl_rl):
https://genesis-world.readthedocs.io/en/latest/user_guide/getting_started/locomotion.html