OpenAI基线的一个分支,强化学习算法的实现。
stable-baselines的Python项目详细描述
稳定基线
稳定基线是一组基于openaiBaselines的强化学习算法的改进实现。
这些算法将使研究社区和行业更容易复制、改进和识别新的想法,并将创建良好的基线,在其上构建项目。我们希望这些工具将被用作新的想法的基础,并作为一种工具来比较新的方法与现有的方法。我们还希望这些工具的简单性将允许初学者使用更高级的工具集进行实验,而不必埋头于实现细节中。
与OpenAI基线的主要区别
这个工具集是openai基线的一个分支,具有主要的结构重构和代码清理功能:
- 所有算法的统一结构
- 符合PEP8(统一代码样式)
- 记录的函数和类
- 更多测试和更多代码覆盖率
- 附加算法:sac和td3(她支持dqn、ddpg、sac和td3)
链接
存储库: https://github.com/hill-a/stable-baselines
中篇文章: https://medium.com/@araffin/df87c4b2fc82
文件: https://stable-baselines.readthedocs.io/en/master/
RL基线动物园: https://github.com/araffin/rl-baselines-zoo
快速示例
大多数库尝试使用类似sklearn的语法来使用gym来实现强化学习算法。
下面是一个如何在Cartpole环境中训练和运行PPO2的快速示例:
importgymfromstable_baselines.common.policiesimportMlpPolicyfromstable_baselines.common.vec_envimportDummyVecEnvfromstable_baselinesimportPPO2env=gym.make('CartPole-v1')env=DummyVecEnv([lambda:env])# The algorithms require a vectorized environment to runmodel=PPO2(MlpPolicy,env,verbose=1)model.learn(total_timesteps=10000)obs=env.reset()foriinrange(1000):action,_states=model.predict(obs)obs,rewards,dones,info=env.step(action)env.render()
如果the environment is registered in Gym和the policy is registered:
fromstable_baselinesimportPPO2model=PPO2('MlpPolicy','CartPole-v1').learn(10000)