schola.core.spaces.dict.DictSpace
类定义
class schola.core.spaces.dict.DictSpace(space_dict=None)基类: Dict
表示空间字典的 Space。
另请参阅
gymnasium.spaces.Dict– 此类与之类似的 gym 空间对象proto_spaces.DictSpace– 此空间的 protobuf 表示
参数
space_dict
类型: Dict[str, gymnasium.spaces.Space]
要表示的空间字典。
属性
spaces
类型: Dict[str, gymnasium.spaces.Space]
此对象表示的空间字典。
has_only_one_fundamental_type
类型: bool (属性)
检查字典空间中的所有子空间是否都属于同一基本类型。
is_np_flattenable
检查此空间是否可以展平为spaces.Box。
np_random
延迟初始化 PRNG,因为这很耗时,并且仅在从此空间采样时才需要。
shape
将空间的形状作为不可变属性返回。
shapes
类型: Dict[str, Tuple[int]] (属性)
获取字典空间中子空间的形状。
方法
__init__
__init__(space_dict=None)Dict 空间的构造函数。
可以通过以下两种方式之一来实例化此空间:要么通过 spaces 参数将空间字典传递给 __init__(),要么将空间作为单独的关键字参数传递(此时需要避免使用 spaces 和 seed 这两个键)
参数
- spaces – 空间字典。这指定了
Dict空间的结构 - seed – 可选地,您可以使用此参数来为构成
Dict空间的 RNG 设置种子 - **spaces_kwargs – 如果
spaces为None,则需要按照上述说明将组成空间作为关键字参数传递
contains
contains(x)返回一个布尔值,指定 x 是否为此空间的一个有效成员。
fill_proto
fill_proto(msg, action)参数
- msg (
DictPoint)
from_jsonable
from_jsonable(sample_n)将 JSONable 数据类型转换为此空间样本的批次。
from_proto
@classmethodfrom_proto(message)get
get(k, d=None)items
items()keys
keys()返回 Dict 的键。
process_data
process_data(msg)参数
- msg (
DictPoint)
sample
sample(mask=None)从此空间生成一个随机样本。
seed
seed(seed=None)为该空间及其所有子空间设置 PRNG 的种子。
simplify
simplify()通过合并相同基本类型的子空间来简化字典空间(如果可能)。
返回: 简化后的空间
返回类型: gymnasium.spaces.Space
示例
>>> space = DictSpace({"a": BoxSpace([0,0],[2,2]), "b": BoxSpace([0,0],[2,2])})>>> space.simplify()Box(0.0, 2.0, (4,), float32)>>> space = DictSpace({"a": DiscreteSpace(4), "b": BoxSpace([0,0],[2,2])})>>> space.simplify()Dict('a': Discrete(4), 'b': Box(0.0, 2.0, (2,), float32))>>> space = DictSpace({"a": DiscreteSpace(4)})>>> space.simplify()Discrete(4)to_jsonable
to_jsonable(sample_n)将此空间样本的批次转换为 JSONable 数据类型。
to_normalized
to_normalized()通过标准化此字典空间中的所有子空间来标准化此字典空间。
返回: 规范化后的字典空间。该方法被调用的空间的一个修改版本
返回类型: DictSpace
示例
>>> space = DictSpace({"a": BoxSpace([0,0],[2,2]), "b": DiscreteSpace(3)})>>> space.to_normalized()Dict('a': Box(0.0, 2.0, (2,), float32), 'b': Discrete(3))values
values()属性文档
has_only_one_fundamental_type
检查字典空间中的所有子空间是否都属于同一基本类型。
返回: 如果所有子空间都属于同一基本类型,则返回 True,否则返回 False
返回类型: bool
示例
>>> space = DictSpace({"a": BoxSpace([0,0],[2,2]), "b": DiscreteSpace(3)})>>> space.has_only_one_fundamental_typeFalse>>> space = DictSpace({"a": BoxSpace([0,0],[2,2]), "b": BoxSpace([0,0],[2,2])})>>> space.has_only_one_fundamental_typeTrue>>> space = DictSpace({"a": DiscreteSpace(3), "b": MultiDiscreteSpace([3,3])})>>> space.has_only_one_fundamental_typeTrueshapes
获取字典空间中子空间的形状。
返回: 字典空间中子空间形状的字典
返回类型: Dict[str, Tuple[int]]
示例
>>> space = DictSpace({"a": BoxSpace(0, 1, shape=(2,)), "b": DiscreteSpace(3)})>>> space.shapes{'a': 2, 'b': 1}