schola.ray.env.BaseEnv
类定义
class schola.ray.env.BaseEnv( unreal_connection, verbosity=0)基类: BaseEnv
包装 Schola 环境的 Ray RLlib 环境。
参数
unreal_connection
类型: UnrealConnection
与 Unreal Engine 环境的连接。
verbosity
Type: int
默认: 0
环境的详细程度级别。
属性
unwrapped
类型: MultiAgentEnv
底层多代理环境。
last_reset_obs
类型: Dict[int, Dict[str, Any]]
最后重置期间记录的观察。
last_reset_infos
类型: Dict[int, Dict[str, str]]
最后重置期间记录的信息字典。
属性
action_space
类型: DictSpace (属性)
环境的动作空间。
返回: 环境的动作空间
返回类型: DictSpace
num_envs
类型: int (属性)
封装环境中的子环境数量。
返回: 封装环境中的子环境数量。
返回类型: int
observation_space
类型: DictSpace (属性)
环境的观察空间。
返回: 环境的观察空间。
返回类型: DictSpace
方法
__init__
__init__(unreal_connection, verbosity=0)参数
- unreal_connection (
UnrealConnection) - verbosity (
int)
get_agent_ids
get_agent_ids()返回子环境的代理 ID。
get_sub_environments
get_sub_environments(as_dict=False)返回对底层子环境的引用,如果存在。
last
last()返回最后的观察、奖励、完成/截断标志和信息……
poll
poll()轮询环境以获取下一个观察、奖励、终止、信息以及任何 off_policy_actions(目前未使用)。
返回值
- observations (
EnvAgentIdDict[Dict[str,Any]]) – 一个字典,按环境和代理 ID 索引,包含每个代理的观察。 - rewards (
EnvAgentIdDict[float]) – 一个字典,按环境和代理 ID 索引,包含每个代理的奖励。 - terminateds (
EnvAgentIdDict[bool]) – 一个字典,按环境和代理 ID 索引,包含每个代理的终止标志。 - truncateds (
EnvAgentIdDict[bool]) – 一个字典,按环境和代理 ID 索引,包含每个代理的截断标志。 - infos (
EnvAgentIdDict[Dict[str,str]]) – 一个字典,按环境和代理 ID 索引,包含每个代理的信息字典。 - off_policy_actions (
EnvAgentIdDict[Any]) – 一个字典,按环境和代理 ID 索引,包含每个代理的 off-policy 动作。未使用。
返回类型: 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]]], Dict[int, Dict[int, Any]]]
send_actions
send_actions(action_dict)用于将动作发送回此环境中的运行代理。动作应针对在上次 poll() 调用中返回观察的每个就绪代理发送。
参数
- action_dict (
Dict[int, Dict[int, Dict[str, Any]]]) – 按 env_id 和 agent_id 索引的动作值。
返回类型: None
stop
stop()释放所有使用的资源。
返回类型: None
to_base_env
to_base_env(make_env=None, num_envs=1, remote_envs=False, remote_env_batch_wait_ms=0)将 RLlib 支持的环境转换为 BaseEnv 对象。
try_render
try_render(env_id=None)尝试渲染具有给定 ID 的子环境或所有子环境。
try_reset
try_reset(env_id=None, seed=None, options=None)尝试重置具有给定 ID 的子环境或所有子环境。如果环境不支持同步重置,则可以返回 (ASYNC_RESET_REQUEST, ASYNC_RESET_REQUEST) 元组。
注意:使用已弃用的包装类(如 ray.rllib.env.base_env._MultiAgentEnvToBaseEnv)时会返回 MultiAgentDict,但为了与 poll() 方法保持一致,新的包装类(如 ray.rllib.env.multi_agent_env.MultiAgentEnvWrapper)会返回 MultiEnvDict。
参数
- env_id (
int | None) – 适用的子环境 ID。如果为 None,则重置整个 Env(即所有子环境)。 - seed (
None | List[int] | int) – 重置子环境(s) 时要传递给子环境(s) 的种子。如果为 None,则不重置任何现有的 PRNG。如果传递整数,即使 PRNG 已存在,也会重置它。 - options (
Dict[str, str] | None) – 重置子环境(s) 时要传递给子环境(s) 的选项字典。
返回: 一个元组,包含 a) 重置后的(多环境/多代理)观察字典和 b) 重置后的(多环境/多代理)信息字典。如果不支持,则返回 (ASYNC_RESET_REQUEST, ASYNC_RESET_REQUEST) 元组。
try_restart
try_restart(env_id=None)尝试重启具有给定 ID 的子环境或所有子环境。