schola.core.spaces.box.BoxSpace
class schola.core.spaces.box.BoxSpace(low, high, shape=None) : Bases: Box, UnrealSpace
表示 n 维空间中一个盒子的空间。
参数: : - low (Union*[float,* np.ndarray*,* List*[float]**]*) – 箱的下界。
- high (Union*[float,* np.ndarray*,* List*[float]**]*) – 箱的上界。
- shape (Tuple*[int]**,* optional) – 空间的形状。
shape : 空间的形状。
类型: : Tuple[int]
说明
与 gymnasium 的 Box 空间不同,此类没有 dtype 属性。dtype 始终为 np.float32。
另请参阅
gymnasium.spaces.Box : 此类对应的 gym 空间对象。
proto_spaces.BoxSpace : 此空间的 protobuf 表示。
方法
__init__(low, high[, shape]) | Box 的构造函数。 |
contains(x) | 返回一个布尔值,指定 x 是否为此空间的一个有效成员。 |
fill_proto(msg, values) | 将此空间中的点的 Python 表示转换为 protobuf 消息。 |
from_jsonable(sample_n) | 将 JSONable 数据类型转换为此空间样本的批次。 |
from_proto(message) | 从 protobuf 表示创建 Space 对象。 |
is_bounded([manner]) | 检查箱在某种意义上是否受限。 |
is_empty_definition(message) | 当且仅当此空间的大小为 0 时,返回 True。 |
merge(*spaces) | 将多个 BoxSpace 合并为一个空间。 |
process_data(msg) | 将此空间中的点对应的 protobuf 消息转换为 Python 表示。 |
sample([mask]) | 在 Box 内生成单个随机样本。 |
seed([seed]) | 为该空间及其子空间的 PRNG 设置种子。 |
to_jsonable(sample_n) | 将此空间样本的批次转换为 JSONable 数据类型。 |
to_normalized() | 将空间的界限归一化到 0 到 1 之间 |
属性
is_np_flattenable | 检查此空间是否可以展平为 spaces.Box。 |
np_random | 延迟初始化 PRNG,因为这很耗时,并且仅在从此空间采样时才需要。 |
shape | 比 gym.Space 具有更严格的类型 - 绝不为 None。 |
__init__(low, high, shape=None) : Box 的构造函数。
low 参数指定每个维度的下界,high 参数指定上界。也就是说,构造的空间将是区间 ([\text{low}[i], \text{high}[i]]) 的乘积。
如果 low (或 high) 是标量,则下界 (或上界) 将假定为跨所有维度的该值。
参数: : - low (SupportsFloat | np.ndarray) – 区间的下界。如果为整数,则必须至少为 -2**63。
- high (Union*[float,* np.ndarray*,* List*[float]**]*) – 区间的上界。如果为整数,则必须至多为
2**63 - 2。 - shape (Optional*[Sequence[int]**]*) – 形状是从 low 或 high np.ndarray 的形状推断出来的,当 low 和 high 为标量时,默认形状为 (1,)
- dtype – 空间元素的 dtype。如果这是整数类型,则
Box基本上是一个离散空间。 - seed – 可选地,您可以使用此参数为用于从空间中采样而生成的 RNG 设置种子。
引发: : ValueError – 如果未提供形状信息 (shape 为 None,low 为 None 且 high 为 None),则会引发值错误。
fill_proto(msg, values) : 将此空间中的点的 Python 表示转换为 protobuf 消息。修改 msg 以反映结果。
参数: : - msg (proto_points.FundamentalPoint) – 要填充的 protobuf 消息。
- value (Any) – 点的 Pythonic 表示。
classmethod from_proto(message) : 从 protobuf 表示创建 Space 对象。
参数: : message (proto_space) – 要转换的 protobuf 消息。
返回: : 从 protobuf 消息创建的 Space 子类
返回类型: : UnrealSpace
classmethod is_empty_definition(message) : 当且仅当此空间的大小为 0 时返回 True。
参数: : message (proto_space) – 要检查是否为空的 protobuf 消息。
返回: : 如果空间为空,则为 True。
返回类型: : bool
classmethod merge(*spaces) : 将多个 BoxSpace 合并为一个空间。
参数: : *spaces (List*[BoxSpace]*) – 要合并的空间。
返回: : 合并后的空间。
返回类型: : BoxSpace
引发: : TypeError – 如果任何空间不是 BoxSpaces。
示例
>>> merged_space = BoxSpace.merge(BoxSpace([0,0],[1,1]), BoxSpace([2,2],[3,3]))>>> merged_space == BoxSpace([0, 0, 2, 2], [1, 1, 3, 3])Trueprocess_data(msg) : 将表示此空间中点的 protobuf 消息转换为 Pythonic 表示。
参数: : msg (proto_points.FundamentalPoint) – 要转换的 protobuf 消息。
返回: : 点的 Pythonic 表示。
返回类型: : np.ndarray
proto_space : alias of BoxSpace
to_normalized() : 将空间的界限归一化到 0 到 1 之间
返回: : 归一化后的空间。调用此方法的空间的修改版本
返回类型: : BoxSpace
示例
>>> space = BoxSpace([0, 0],[2, 2])>>> space.to_normalized() == BoxSpace([0., 0.], [1., 1.])True