为了回顾之前的强化学习相关算法内容,我决定开始弄一个强化学习python第三方库

同时站在巨人的肩膀上进行开发,这个第三方库的开发参考了几个开源库

这篇文章记录了这个第三方库的开发过程
github连接:Apex_RL

python第三方库开发配置

开发python第三方库,首先要配置几个文件
现代python第三方库偏向于使用pyproject.toml作为配置文件
开发python project参考pypa/sampleproject

参考rsl_rl和sample,首先规划了下文件树

1
2
3
4
5
6
7
8
9
Apex_rl/
├── apex_rl/ # 主代码目录(Python包)
│ └── __init__.py # 包初始化文件(可包含版本信息)
├── tests/ # 单元测试目录
├── docs/ # 文档
├── README.md # 项目说明
├── pyproject.toml # 构建配置(现代方式,推荐)
├── setup.py # 旧版配置(目前没有修改)
└── LICENSE # 开源许可证(BSD-3-Clause)

实现方式规划

目前参考了下几个开源库的实现方式,都使用了向量化环境,都用了gym提供的接口

skrl不仅仅在torch基础上构建,还基于jax库构建了一下rl算法

jax库是一个很高效的深度学习框架,但是资料太少我们先不考虑,目前还是基于torch进行开发

文档生成

docs采用sphinx生成,主题使用furo

License

License选择了BSD-3-Clause

版本管理

使用git进行版本管理

目前分为main分支、develop分支、feature/ppo分支,先在feature/ppo分支进行开发,后续合并到main分支

git-branch1

接下来的计划

下阶段目标是

  • 规划项目整体框架
  • Actor-Critic方法实现
  • PPO实现(PPO)
  • VecENV的实现