schola.core.env.ScholaEnv
类定义
class schola.core.env.ScholaEnv( unreal_connection, verbosity=0, environment_start_timeout=45)基类: object
一个 Gym 风格的环境,封装了与 Unreal Engine 的连接,运行 Unreal 的 Schola 插件。
引发
NoEnvironmentsException– 如果没有环境定义NoAgentsException– 如果任何环境中都没有定义代理
参数
unreal_connection
类型: UnrealConnection 与 Unreal Engine 的连接。
verbosity
Type: int
默认: 0
环境的详细程度级别。
environment_start_timeout
Type: int
默认: 45
环境启动等待时间(秒)。
属性
unreal_connection
类型: UnrealConnection 与 Unreal Engine 的连接。
gym_stub
类型: gym_grpc.GymServiceStub
Gym 服务的 gRPC 存根。
ids
类型: List[List[int]]
所有环境及其活动代理的嵌套列表。
agent_display_names
类型: List[Dict[int, str]]
一个列表,其中包含每个环境中每个代理的 ID 到显示名称的映射。
obs_defns
类型: Dict[int, Dict[int, DictSpace]]
每个环境中每个代理的观察空间定义。
action_defns
类型: Dict[int, Dict[int, DictSpace]]
每个环境中每个代理的操作空间定义。
steps
Type: int
环境中当前剧集的步数。
next_action
类型: Dict[int, Dict[int, Any]], 可选
每个环境中每个代理将要采取的下一个动作。
属性
num_agents
类型: int (属性)
返回环境中代理的总数。
返回: 代理的总数。
返回类型: int
num_envs
类型: int (属性)
返回环境的数量。
返回: 环境的数量。
返回类型: int
方法
__init__
__init__(unreal_connection, verbosity=0, environment_start_timeout=45)参数
- unreal_connection (
UnrealConnection) - verbosity (
int) - environment_start_timeout (
int)
close
close()关闭与 Unreal Engine 的连接并清理所有资源。多次调用此方法是安全的。
另请参阅: gymnasium.Env.close – gymnasium 中的等效操作
返回类型: None
get_action_space
get_action_space(env_id, agent_id)获取特定环境和代理的操作空间。
参数
- env_id (
int) – 环境的 ID - agent_id (
int) – 代理的 ID
返回: 指定环境和代理的操作空间。
返回类型: DictSpace
get_obs_space
get_obs_space(env_id, agent_id)获取特定环境和代理的观察空间。
参数
- env_id (
int) – 环境的 ID - agent_id (
int) – 代理的 ID
返回: 指定环境和代理的观察空间。
返回类型: DictSpace
hard_reset
hard_reset(env_ids=None, seeds=None, options=None)对环境执行硬重置。
参数
- env_ids (
Optional[List[int]]) – 要重置的环境 ID 列表。如果为 None,则重置所有环境。默认为 None。 - seeds (
Union[None, List[int], int]) – 用于随机数生成的种子。如果提供整数,则将其用作所有环境的种子。如果提供整数列表,则每个环境将分配一个列表中的种子。默认为 None。 - options (
Union[List[Dict[str, str]], Dict[str, str], None]) – 要为每个环境设置的选项。如果提供字典列表,则每个环境将分配相应的选项字典。如果提供单个字典,则所有环境将分配相同的选项。默认为 None。
返回: 已重置的环境 ID 列表。
返回类型: List
引发
AssertionError– 如果提供的种子数量不是零或一,并且与环境数量不匹配AssertionError– 如果提供的选项字典数量不是零或一,并且与环境数量不匹配
另请参阅: gymnasium.Env.reset – gymnasium 中的等效操作
poll
poll()轮询环境以获取当前状态。
返回值
- observations (
EnvAgentIdDict[Dict[str,Any]]) – 一个字典,按环境和代理 ID 键入,包含每个代理的观察值 - rewards (
EnvAgentIdDict[float]) – 一个字典,按环境和代理 ID 键入,包含每个代理的奖励 - terminateds (
EnvAgentIdDict[bool]) – 一个字典,按环境和代理 ID 键入,包含每个代理的终止标志 - truncateds (
EnvAgentIdDict[bool]) – 一个字典,按环境和代理 ID 键入,包含每个代理的截断标志 - infos (
EnvAgentIdDict[Dict[str,str]]) – 一个字典,按环境和代理 ID 键入,包含每个代理的信息字典
返回类型: Tuple[Dict[int, Dict[int, Dict[str, Any]]], Dict[int, Dict[int, float]], Dict[int, Dict[int, bool]], Dict[int, Dict[int, bool]], Dict[int, Dict[int, Dict[str, str]]]]
send_actions
send_actions(action)将动作发送给所有代理和环境。
参数
- action (
EnvAgentIdDict[Dict[str,Any]]) – 一个字典,按环境和代理 ID 键入,包含所有活动环境和代理的动作
返回类型: None
另请参阅: poll – 实际将动作发送到 Unreal 的地方
soft_reset
soft_reset(ids=None)软重置环境,方法是等待 Unreal 自行重置并将 Post Reset State 发送到 Python。
参数
- ids (
List[str], 可选) – 要重置的环境 ID 列表。如果未提供或设置为 None,则将重置所有环境 ID
返回值
- observations (
EnvAgentIdDict[Dict[str,Any]]) – 一个字典,按环境和代理 ID 键入,包含重置后代理的观察值 - infos (
EnvAgentIdDict[Dict[str,str]]) – 一个字典,按环境和代理 ID 键入,包含环境中的代理信息
返回类型: Tuple[Dict[int, Dict[int, Dict[str, Any]]], Dict[int, Dict[int, Dict[str, str]]]]