警告:此软件包处于维护模式,请使用稳定的Baselines3(SB3)进行最新版本。您可以在SB3文档中找到迁移指南。
稳定的基线是基于OpenAI基线的增强学习算法的一系列改进的实现。
您可以在中等文章中阅读稳定基线的详细介绍。
这些算法将使研究社区和行业更容易复制,完善和识别新的想法,并将创建良好的基准来建立项目。我们希望这些工具将被用作围绕该工具添加新想法的基础,并将这些工具用作与现有方法进行比较的工具。我们还希望这些工具的简单性将使初学者能够尝试更先进的工具集,而无需埋葬在实施细节中。
注意:尽管使用简单,但稳定的基线(SB)假设您对增强学习(RL)有一些了解。如果没有一些练习,您不应利用此库。在某种程度上,我们在文档中提供了良好的资源,以开始使用RL。
该工具集是OpenAI基线的叉子,具有重大的结构重构,并且代码清理:
| 特征 | 稳定的生物线 | Openai基线 |
|---|---|---|
| 最新的RL方法 | ✔️ (1) | ✔️ |
| 文档 | ✔️ | |
| 自定义环境 | ✔️ | ✔️ |
| 定制政策 | ✔️ | ➖ (2) |
| 通用接口 | ✔️ | ➖ (3) |
| 张板支撑 | ✔️ | ➖ (4) |
| ipython /笔记本友好 | ✔️ | |
| PEP8代码样式 | ✔️ | ✔️ (5) |
| 自定义回调 | ✔️ | ➖ (6) |
(1):从以前版本的OpenAI基线分叉,现在有SAC和TD3
(2):目前不适用于DDPG,仅来自运行脚本。
(3):仅通过运行脚本。
(4):培训信息的基本记录(没有损失也没有图形)。
(5):编辑:您做了Openai! ?
(6):传递回调功能仅适用于DQN
文档可在线获得:https://stable-baselines.readthedocs.io/
RL基线动物园。是使用稳定的生物线的预训练增强学习剂的集合。
它还提供了用于培训,评估代理,调整超参数和录制视频的基本脚本。
该存储库的目标:
github repo:https://github.com/araffin/rl-baselines-zoo
文档:https://stable-baselines.readthedocs.io/en/master/guide/rl_zoo.html
注意:稳定的生物线支持张量流的版本从1.8.0到1.14.0。计划支持TensorFlow 2 API。
基线需要带有开发标头的Python3(> = 3.5)。您还需要系统包CMAKE,OPENMPI和ZLIB。这些可以如下安装
sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev在Mac上安装系统软件包需要自制。安装了自制型,请运行以下内容:
brew install cmake openmpi要在Windows上安装稳定的冰淇淋,请查看文档。
安装稳定的基本软件包:
pip install stable-baselines[mpi]
这包括对MPI的可选依赖性,启用算法DDPG,GAIL,PPO1和TRPO。如果您不需要这些算法,则可以在没有MPI的情况下安装:
pip install stable-baselines
请阅读文档以获取更多详细信息和替代方案(来自来源,使用Docker)。
大多数图书馆试图遵循类似Sklearn的语法,以进行增强学习算法。
这是如何在Cartpole环境上训练和运行PPO2的快速示例:
import gym
from stable_baselines . common . policies import MlpPolicy
from stable_baselines . common . vec_env import DummyVecEnv
from stable_baselines import PPO2
env = gym . make ( 'CartPole-v1' )
# Optional: PPO2 requires a vectorized environment to run
# the env is now wrapped automatically when passing it to the constructor
# env = DummyVecEnv([lambda: env])
model = PPO2 ( MlpPolicy , env , verbose = 1 )
model . learn ( total_timesteps = 10000 )
obs = env . reset ()
for i in range ( 1000 ):
action , _states = model . predict ( obs )
obs , rewards , dones , info = env . step ( action )
env . render ()
env . close ()或者,如果环境在健身房注册并且注册了政策,则只需用一个衬板训练模型:
from stable_baselines import PPO2
model = PPO2 ( 'MlpPolicy' , 'CartPole-v1' ). learn ( 10000 )请阅读文档以获取更多示例。
以下所有示例可以使用Google COLAB笔记本在线执行:
| 姓名 | 重构(1) | 经常性 | Box | Discrete | MultiDiscrete | MultiBinary | 多处理 |
|---|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| 宏cer | ✔️ | ✔️ | (5) | ✔️ | ✔️ | ||
| acktr | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
| DDPG | ✔️ | ✔️ | ✔️ (4) | ||||
| DQN | ✔️ | ✔️ | |||||
| 盖尔(2) | ✔️ | ✔️ | ✔️ | ✔️ (4) | |||
| 她(3) | ✔️ | ✔️ | ✔️ | ✔️ | |||
| PPO1 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (4) | |
| PPO2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| 囊 | ✔️ | ✔️ | |||||
| TD3 | ✔️ | ✔️ | |||||
| trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (4) |
(1):是否已重构该算法以适合BaseRLModel类。
(2):仅针对TRPO实施。
(3):从头开始重新实现,现在支持DQN,DDPG,SAC和TD3
(4):使用MPI进行多处理。
(5):在项目范围内。
注意:软演员 - 批评(SAC)和双延迟的DDPG(TD3)不是原始基线的一部分,她从头开始重新成熟。
Action gym.spaces .空格:
Box :一个n维盒,其中包含动作空间中的每个点。Discrete :可能的操作列表,其中每个时间步中只能使用其中一个动作。MultiDiscrete :可能的操作列表,其中每个时间段的每个离散集的一个动作只能使用。MultiBinary :可能的操作列表,其中每个时间步都可以在任何组合中使用任何操作。 一些基线示例使用Mujoco(触点中的多关节动态)物理模拟器,该模拟器是专有的,需要二进制文件和许可(临时30天许可证可以从www.mujoco.org获得)。可以在此处找到有关设置Mujoco的说明
基准中的所有单元测试均可使用Pytest Runner运行:
pip install pytest pytest-cov
make pytest
我们尝试在文档中使用稳定的生物线来维护项目列表,请告诉我们何时您希望您的项目出现在此页面上;)
在出版物中引用该存储库:
@misc{stable-baselines,
author = {Hill, Ashley and Raffin, Antonin and Ernestus, Maximilian and Gleave, Adam and Kanervisto, Anssi and Traore, Rene and Dhariwal, Prafulla and Hesse, Christopher and Klimov, Oleg and Nichol, Alex and Plappert, Matthias and Radford, Alec and Schulman, John and Sidor, Szymon and Wu, Yuhuai},
title = {Stable Baselines},
year = {2018},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/hill-a/stable-baselines}},
}
目前,稳定的 - 贝斯利林(Ashley Hill)(又名 @Hill-A),Antonin Raffin(又名@araffin),Maximilian Ernestus(aka @ernestum),Adam Gleave(@AdamGleave)和Ansssi Kanervisto(@miffyli)。
重要说明:我们不提供技术支持,也不咨询,也不每封电子邮件回答个人问题。
对于有兴趣使基准更好的任何兴趣,仍然需要进行一些文档。如果您想贡献,请先阅读贡献。MD指南。
稳定的基线是在Ensta Paristech的机器人实验室U2IS(Inria Flowers团队)中创建的。
徽标积分:LM Tenkes