Stable Baselines3(SB3)是一组使用 PyTorch 实现的可靠深度强化学习算法。作为 Stable Baselines 的下一个重要版本,Stable Baselines3 提供了一套高效的工具,使研究人员和工业界可以更轻松地复制、优化和创建新的项目思路,同时也为新的概念提供良好的基础。尽管 SB3 使用简单,但仍要求用户具备一定的强化学习知识。
Stable Baselines3 提供了众多功能:
Dict 观察空间支持目前,SB3 已实现原计划中的大部分功能,因此没有重大改变计划。未来将主要集中于修复漏洞和维护,同时在附属库中进行更多的活跃开发,如:
如果需要从 Stable-Baselines (SB2) 迁移到 Stable-Baselines3,可以在其文档中找到详细的迁移指南。
Stable-Baselines3 可以与其他库和服务集成,例如用于实验跟踪的 Weights & Biases 和用于模型存储共享的 Hugging Face。
RL Baselines3 Zoo 是 Stable Baselines3 强化学习代理的一个训练框架,提供训练、评估、调优超参数、绘图及视频录制的脚本。其目标是提供简便的接口进行 RL 代理的训练与使用,同时为每个环境和算法提供调优的超参数。
SB3-Contrib 是一个实验性功能库,提供最新功能如 Recurrent PPO、CrossQ 等。这使主库 SB3 保持稳定同时不断创新。
这是一个基于 Jax 的概念验证版本,支持更快的算法实现,如 DroQ 等。
Stable-Baselines3 支持 PyTorch >= 2.3,安装时需要 Python 3.9 及以上版本,可以使用 pip 来安装:
pip install 'stable-baselines3[extra]'
以下是一个简单的使用 PPO 算法在 CartPole-v1 环境中进行训练和运行的示例代码:
import gymnasium as gym from stable_baselines3 import PPO env = gym.make("CartPole-v1", render_mode="human") model = PPO("MlpPolicy", env, verbose=1) model.learn(total_timesteps=10_000) vec_env = model.get_env() obs = vec_env.reset() for i in range(1000): action, _states = model.predict(obs, deterministic=True) obs, reward, done, info = vec_env.step(action) vec_env.render() env.close()
Stable-Baselines3 提供了多个在线教程,可在 Google Colab 中直接运行。详细文档和其他示例可在项目文档中找到。
Stable Baselines3 支持多种强化学习算法,包括 A2C、PPO、DDPG、DQN、SAC 等,能够处理多种动作空间。
Stable-Baselines3 是一个开源项目,欢迎有志于改进基准的开发者参与。贡献前请参阅 "CONTRIBUTING.md" 指南。
通过这些功能和特点,Stable Baselines3 为强化学习的研究与实践提供了一个高效且易用的平台,帮助更多人探索该领域的广阔可能性。