可定制的三维基准,用于评估强化学习中的泛化。

mazeexplorer的Python项目详细描述


mazeexplorer

mazeexplorer是一个可定制的3d基准,用于评估强化学习中的泛化。

简单地说,mazeexplorer使为代理创建单独的培训和测试环境变得容易。

它基于3d第一人称游戏Doom和开源 环境VizDoom

此存储库包含mazeexplorer健身房环境的代码以及生成基线结果的脚本。

作者:卢克·哈里斯*、塞巴斯蒂安·李*、雅罗斯劳·尔泽佩基、卡佳·霍夫曼和萨姆·德夫林。
*联合第一作者

Default texturesRandom TexturesRandom Textures

任务

目标是在程序生成的迷宫中导航并收集一组密钥。

该环境高度可定制,允许您创建不同的培训和测试环境。

可以配置环境的以下功能:

  • 唯一或重复的地图
  • 地图数量
  • 地图大小(x,y)
  • 迷宫复杂度
  • 迷宫密度
  • 随机/固定键
  • 随机/固定纹理
  • 随机/固定生成
  • 钥匙数量
  • 环境种子
  • 节目超时
  • 奖励剪辑
  • 帧堆栈
  • 分辨率
  • 动作框架重复
  • 动作空间
  • 特定纹理(墙, 天花板、地板)
  • 数据扩充

示例用法

frommazeexplorerimportMazeExplorertrain_env=MazeExplorer(number_maps=1,size=(15,15),random_spawn=True,random_textures=False,keys=6)test_env=MazeExplorer(number_maps=1,size=(15,15),random_spawn=True,random_textures=False,keys=6)# trainingfor_inrange(1000):obs,rewards,dones,info=train_env.step(train_env.action_space.sample())# testingfor_inrange(1000):obs,rewards,dones,info=test_env.step(test_env.action_space.sample())

安装

  1. 安装vizdoom的依赖项:LinuxMacOSWindows
  2. pip3 install virtualenv pytest
  3. 创建一个virtualenv并激活它
    1. virtualenv mazeexplorer-env
    2. source maze-env/bin/activate
  4. git克隆此repo git clone https://github.com/microsoft/MazeExplorer
  5. 将CD放入回购:cd MazeExplorer
  6. 使用git submodule update --init --recursive
  7. 拉取子模块
  8. 安装依赖项:pip3 install -e .
  9. 运行测试:bash test.sh

基线实验

再现基线实验的信息如baseline_experiments/experiments.md所示。

贡献

这个项目欢迎大家提出意见和建议。大多数捐款要求您同意 出资人许可协议(CLA)声明您有权并且实际上有权授予我们 使用您的捐款的权利。有关详细信息,请访问https://cla.microsoft.com

当您提交拉取请求时,cla bot将自动确定您是否需要提供 a cla并适当地装饰pr(例如,标签、注释)。只需按照说明操作 由机器人提供。您只需要使用我们的CLA在所有回购协议中执行一次。

这个项目采用了Microsoft Open Source Code of Conduct。 有关详细信息,请参见Code of Conduct FAQ或 如有任何其他问题或意见,请与opencode@microsoft.com联系。

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

推荐PyPI第三方库


热门话题
ArrayList Java中的搜索字符串   另一个web应用程序的java访问会话   另一个应用程序中的活动和服务之间的java通信   java根据Json字符串类型将Json字符串转换为对象   eclipse如何解决java中的错误异常。lang.NoSuchMethodError:'java。字符串javax。摆动JOptionPane。showInputDialog(java.lang.String)'   线程“main”java中的安卓异常。lang.NoClassDefFoundError:org/codehaus/jackson/JsonParseException   java如何在安卓 emulator上显示Mat图像?使用NDK   Java在本地读取测试源文件,但在服务器上读取失败   java dowhile循环用于计算输入数字中的数字。故障排除代码   JAva初学者在编写获取成本的方法时遇到困难   java是shell游戏。我如何让物体移动,特别是在特定的曲线上,但顺序是随机的?   java如何区分两个同名的JButton   java为什么我在Spring Boot中需要一个接口?   java将文件路径插入数据库将删除\   使用InterfaceType初始化java对象   java如何部署一个分为Angular、Spring Boot和MySQL的项目?   java如何使用Symja解决不等式?