强化学习的高保真模拟环境

holodeck的Python项目详细描述


全息甲板

Holodeck Video

Read the docs badgeBuild Status

全息甲板是一个用于强化学习的高保真模拟器,建立在虚幻引擎4之上。 Read the docs.

安装

pip install holodeck

(需要python 3)

完整说明见Installation(包括docker)。

功能

  • 7+丰富的世界用于培训代理,以及这些世界的许多场景
  • 轻松扩展和修改培训方案
  • 一次训练和控制多个代理
  • 简单的、类似openai健身房的界面
  • 高性能-模拟速度可达到2倍实时性
  • 无头跑步或观看您的经纪人学习

用法

全息甲板的接口设计与OpenAI's Gym相同。 熟悉holodeck使用的最快方法是查看example.py文件。 下面是运行全息甲板世界的示例的基本演练:

importholodeckimportnumpyasnpenv=holodeck.make("UrbanCity")# Load the environment. This environment contains a UAV in a city.env.reset()# You must call `.reset()` on a newly created environment before ticking/stepping itcommand=np.array([0,0,0,100])# The UAV takes 3 torques and a thrust as a command.foriinrange(30):state,reward,terminal,info=env.step(command)# Pass the command to the environment with step.# This returns the state, reward, terminal and info tuple.

状态是传感器枚举到传感器值的字典。 奖励是从上一个动作中获得的奖励,终端指示当前 状态是一个终端状态。 信息包含其他特定于环境的信息。

如果您想访问特定传感器的数据,它与导入传感器和 从状态字典中检索正确的值:

fromholodeck.sensorsimportSensorsprint(state[Sensors.LOCATION_SENSOR])

控制方案

holodek支持不同代理的不同控制方案。 目前唯一具有多种控制方案的智能体是无人机智能体。 控制方案的切换如下:

fromholodeck.agentsimportControlSchemesenv.set_control_scheme('uav0',ControlSchemes.UAV_ROLL_PITCH_YAW_RATE_ALT)

有关更多控制方案,请查看docs

多代理环境

holodeck支持多代理环境。界面有点不同,但仍然很容易使用。 与其调用step将命令传递给主代理并标记游戏,不如调用actact向特定代理提供命令,但不在游戏中打勾。 一旦所有代理都收到他们的操作,您就可以调用tick来勾选游戏。 在act之后,每次调用tick时,都会向代理提供相同的命令。 要更改命令,只需再次调用act。

env=holodeck.make('CyberPunkCity')env.reset()env.act('uav0',np.array([0,0,0,100]))env.act('nav0',np.array([0,0,0]))foriinrange(300):s=env.tick()

从tick返回的状态也有些不同。 状态现在是从代理名称到传感器字典的字典。 您可以按如下方式访问无人机的奖励、终端和位置:

s['uav0'][Sensors.REWARD]
s['uav0'][Sensors.TERMINAL]
s['uav0'][Sensors.LOCATION_SENSOR]

文档

在Linux中使用OpenGL3

要在Linux中使用OpenGL3,请更改holodeck.make中的参数:

from Holodeck import Holodeck
env = Holodeck.make("MazeWorld", Holodeck.GL_VERSION.OPENGL3)

在无头机器上运行全息甲板

全息甲板可以运行在无头机器与GPU加速渲染。这不需要额外的配置。全息甲板将自动检测到机器是无头的,并相应地配置它的渲染过程。

引文:

@misc{HolodeckPCCL,
  Author = {Joshua Greaves and Max Robinson and Nick Walton and Mitchell Mortensen and Robert Pottorff and Connor Christopherson and Derek Hancock and Jayden Milne David Wingate},
  Title = {Holodeck: A High Fidelity Simulator},
  Year = {2018},
}

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

推荐PyPI第三方库


热门话题
java如何正确测试和调试使用照相机闪光灯的应用程序?   组织。jboss。放松点。spi。未处理的异常:java。lang.NoSuchMethodError:org。冬眠SessionFactory。openSession()Lorg/hibernate/Session;   在同一行上声明多个Java数组?   java Spring批处理管理员,无法替换占位符“批处理”。商业模式。脚本'   使用JQuery的网站上出现java HtmlUnit“不支持浏览器”错误   java JavaFX如何将图形“裁剪”到按钮   java处理mysql中包含逗号的数字   java Hibernate语法错误:应为点   如何根据给定的日期在java中获取30天的回溯日期   java Servlet URL映射   线程“awteventque0”java中的多线程java JFrame异常。util。EmptyStackException,即使堆栈先初始化   JavaSpring控制器/组件实现可序列化   java如何在游戏完成时启动带有按钮的对话框?   java Hibernate双向多对多实现   如何使用Xpath Java修改XML中的属性值,包括注释部分   java Mockito模拟构造函数示例   java如何在不重写的情况下写入文本文件?