Shortcuts

欢迎来到 OpenRL 中文文档

_images/openrl.png

English | GitHub

OpenRL 介绍

OpenRL 强化学习框架

OpenRL 是由第四范式强化学习团队开发的基于PyTorch的强化学习研究框架,它提供了一个简单易用的接口,可以让你方便地接入不同强化学习环境。 目前,OpenRL框架有以下特点:

  1. 简单易用的训练接口,降低研究人员的学习和使用成本。

  2. 同时支持 单智能体多智能体 算法。

  3. 支持 自然语言任务 (如对话任务)的强化学习训练。

  4. 支持 Hugging Face 上的模型导入。

  5. 支持LSTM,GRU,Transformer等模型。

  6. 支持 gymnasium 环境。

  7. 支持词典类型的观测输入。

  8. 支持 wandb (更多请查看 wandb知乎教程)和 tensorboardX 等主流机器学习训练可视化平台。

  9. 支持环境的串行和并行训练,同时保证两种模式下的训练效果一致。

  10. 提供代码覆盖测试和单元测试。

在接下来的 快速上手 中,我们将介绍如何安装OpenRL框架, 并通过简单的例子来说明如何使用OpenRL。

快速上手

安装说明

安装 OpenRL

OpenRL支持目前主流的操作系统如:Ubuntu, MacOS, Windows, CentOS等。OpenRL目前仅支持Python3.8及以上版本。 目前,OpenRL发布在了 PyPIAnaconda 上,用户可以通过pip或者conda安装。

通过pip安装:

pip install openrl

通过conda安装:

conda install -c openrl openrl

从源码安装:

git clone https://github.com/OpenRL-Lab/openrl.git
cd openrl
pip install .

版本查看

在命令行执行以下命令,可以查看当前安装的OpenRL版本:

openrl --version

开始智能体训练

训练环境

OpenRL为用户提供了一个简单易用的使用方式,这里我们以 CartPole 环境为例, 展示如何使用 OpenRL 进行强化学习训练。新建一个文件 train_ppo.py,输入如下代码.

# train_ppo.py
from openrl.envs.common import make
from openrl.modules.common import PPONet as Net
from openrl.runners.common import PPOAgent as Agent

env = make("CartPole-v1", env_num=9) # 创建环境,并设置环境并行数为9
net = Net(env) # 创建神经网络
agent = Agent(net) # 初始化训练器
agent.train(total_time_steps=20000) # 开始训练,并设置环境运行总步数为20000

在终端执行 python train_ppo.py,即可开始训练。在普通笔记本上,仅需要 几秒钟 ,便可以在完成智能体的训练。

小技巧

openrl还提供了命令行工具,可以通过一行命令完成智能体训练。用户只需要在终端执行以下命令即可:

openrl --mode train --env CartPole-v1

测试环境

当智能体完成训练后,我们可以通过agent.act()方法,可以获取智能体的动作。 只需要在train_ppo.py文件中,添加如下代码,即可完成智能体的可视化测试:

# train_ppo.py
from openrl.envs.common import make
from openrl.modules.common import PPONet as Net
from openrl.runners.common import PPOAgent as Agent

env = make("CartPole-v1", env_num=9) # 创建环境,并设置环境并行数为9
net = Net(env) # 创建神经网络
agent = Agent(net) # 初始化训练器
agent.train(total_time_steps=20000) # 开始训练,并设置环境运行总步数为20000

# 创建用于测试的环境,并设置环境并行数为9,设置渲染模式为group_human
env = make("CartPole-v1", env_num=9, render_mode="group_human")
agent.set_env(env) # 训练好的智能体设置需要交互的环境
obs, info = env.reset() # 环境进行初始化,得到初始的观测值和环境信息
while True:
    action, _ = agent.act(obs) # 智能体根据环境观测输入预测下一个动作
    # 环境根据动作执行一步,得到下一个观测值、奖励、是否结束、环境信息
    obs, r, done, info = env.step(action)
    if any(done): break
env.close() # 关闭测试环境

在终端执行 python train_ppo.py,即可开始训练并进行可视化测试。 train_ppo.py 代码也可以从 openrl/examples 处下载。

注解

如果用户在服务器上执行测试代码,将无法看到可视化界面。 可以通过设置render_mode为group_rgb_array, 然后在每次step后调用env.render()获取来环境图像。

Read the Docs v: main
Versions
latest
stable
main
Downloads
html
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.