用于排序的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)类型, 允许环境描述不相交的输出空间,以离散参数空间为条件。 例如:

^{pr2}$

对于不支持参数动作空间的代理,我们提供两个包装器(BoxActionSpaceWrapper)和 MultiDiscreteActionSpaceWrapper)将DiscreteParametric操作空间展平为BoxMultiDiscrete。在

sorting_gym.agents.scripted模块中,我们直接使用 未包装的环境。在

RL代理可能需要考虑支持参数/自回归操作:

目标:

  • [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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaHTTP。请求侦听器   java Selenium webdriver遍历行并仅检索某些列   JavaSpring批处理在启动运行方法之前启动SimpleZoblancher运行方法   maven如何使用Maven2从javadoc生成java源代码?   java为什么我的Unicodont(Slick2D)不画画?   java取消对未使用对象的引用是否会提高冗长方法的性能?   java可执行Jar的画布比使用Eclipse Runner的小   为什么我的for循环在Android studio中与eclipse(java)产生不同的结果   java代码段字节数组到端口号   java在DynamoDB范围键中插入项   java 安卓。看法WindowManager$BadTokenException:无法添加窗口,您的活动正在运行吗?   java我想要两个列表视图同时滚动   java测试数据分离   java Saxon:每次重新部署后都需要重新启动Glassfish