用于排序的OpenAI健身房环境
sorting-gym的Python项目详细描述
分拣健身房
基于2020年论文分类的OpenAI健身房环境 Strong Generalization and Efficiency in Neural Programs作者 Yujia Li,Felix Gimeno,pushmete Kohli,Oriol Vinyals。在
这个存储库包括用于排序的神经接口环境的实现。在
从pypi安装(推荐),安装方式:
pip install sorting-gym
导入Python包sorting_gym
将暴露以下健身房环境:
SortTapeAlgorithmicEnv-v0
-基于Gym's algorithmic environment的基于磁带的环境BasicNeuralSortInterfaceEnv-v0
-一个接口,代理可以在其中实现简单的算法,如气泡排序和插入排序。在FunctionalNeuralSortInterfaceEnv-v0
-扩展BasicNeuralSortInterfaceEnv-v0
接口以包括进入和退出函数的指令。在
为了定义参数动作空间,我们引入DiscreteParametric(Space)
类型,
允许环境描述不相交的输出空间,以离散参数空间为条件。
例如:
对于不支持参数动作空间的代理,我们提供两个包装器(BoxActionSpaceWrapper
)和
MultiDiscreteActionSpaceWrapper
)将DiscreteParametric
操作空间展平为Box
和
MultiDiscrete
。在
在sorting_gym.agents.scripted
模块中,我们直接使用
未包装的环境。在
RL代理可能需要考虑支持参数/自回归操作:
- https://docs.ray.io/en/master/rllib-models.html#autoregressive-action-distributions
- https://arxiv.org/abs/1502.03509
目标:
- [x] 实现bubblesort/insertion排序环境。在
- [x] 实现bubblesort/insertion排序代理作为测试。在
- [x] 实现功能环境。在
- [x] 实现快速排序脚本代理来测试函数环境。在
- [x] 包装环境以显示box操作空间。在
- [x] 包装环境以显示多离散动作空间。在
- []包括通过RL培训代理的示例解决方案
- []环境渲染(至少基于文本,可选依赖项,用于图形化渲染,例如pygame)
- []从open ai gym中删除磁带环境(用于在代理级别提高时生成更长的数据)
- [x] 客房部-许可证和ci
进一步发展的想法:
- 使用cython加速环境(如果需要)
- 离散参数空间的PR-to
gym
- 抽象出一个神经控制器Mixin/环境包装器?在
- 考虑使用不同的/增强的指令集。 而不是总是比较视图中的每一个指针和数据元素(以及相邻的元素), 有明确的比较说明。可以扩展到其他数学指令,包括 说明的可变成本核算。在
- 不要传递前面的参数,而是考虑传递指令数 在当前作用域中作为廉价程序计数器执行。在
使用pytest运行测试
pytest
建筑/包装
poetry update
poetry version patch
poetry lock
poetry build
poetry publish
- 项目
标签: