schola.core.spaces.box.BoxSpace
class schola.core.spaces.box.BoxSpace(low, high, shape=None)
: Bases: Box
, UnrealSpace
A Space representing a box in n-dimensional space.
Parameters: : - low (Union*[float,* np.ndarray*,* List*[float]**]*) – The lower bounds of the box.
- high (Union*[float,* np.ndarray*,* List*[float]**]*) – The upper bounds of the box.
- shape (Tuple*[int]**,* optional) – The shape of the space.
shape : The shape of the space.
Type: : Tuple[int]
Note
Unlike, the gymnasium Box space, this class does not have a dtype attribute. The dtype is always np.float32.
See also
gymnasium.spaces.Box
: The gym space object that this class is analogous to.
proto_spaces.BoxSpace
: The protobuf representation of this space.
Methods
__init__ (low, high[, shape]) | Constructor of Box . |
contains (x) | Return boolean specifying if x is a valid member of this space. |
fill_proto (msg, values) | Convert a python representation of point in this space to a protobuf message. |
from_jsonable (sample_n) | Convert a JSONable data type to a batch of samples from this space. |
from_proto (message) | Create a Space Object from a protobuf representation. |
is_bounded ([manner]) | Checks whether the box is bounded in some sense. |
is_empty_definition (message) | Returns True iff this space has magnitude 0. |
merge (*spaces) | Merge multiple BoxSpaces into a single space. |
process_data (msg) | Convert a protobuf message corresponding to a point in this space to a pythonic representation. |
sample ([mask]) | Generates a single random sample inside the Box. |
seed ([seed]) | Seed the PRNG of this space and possibly the PRNGs of subspaces. |
to_jsonable (sample_n) | Convert a batch of samples from this space to a JSONable data type. |
to_normalized () | Normalize the bounds of the space to be between 0 and 1 |
Attributes
is_np_flattenable | Checks whether this space can be flattened to a spaces.Box . |
np_random | Lazily seed the PRNG since this is expensive and only needed if sampling from this space. |
shape | Has stricter type than gym.Space - never None. |
__init__(low, high, shape=None)
: Constructor of Box
.
The argument low
specifies the lower bound of each dimension and high
specifies the upper bounds.
I.e., the space that is constructed will be the product of the intervals ([\text{low}[i], \text{high}[i]]).
If low
(or high
) is a scalar, the lower bound (or upper bound, respectively) will be assumed to be
this value across all dimensions.
Parameters:
: - low (SupportsFloat | np.ndarray) – Lower bounds of the intervals. If integer, must be at least -2**63
.
- high (SupportsFloat | np.ndarray*]*) – Upper bounds of the intervals. If integer, must be at most
2**63 - 2
. - shape (Optional*[Sequence[int]**]*) – The shape is inferred from the shape of low or high np.ndarray
s with
low and high scalars defaulting to a shape of (1,) - dtype – The dtype of the elements of the space. If this is an integer type, the
Box
is essentially a discrete space. - seed – Optionally, you can use this argument to seed the RNG that is used to sample from the space.
Raises: : ValueError – If no shape information is provided (shape is None, low is None and high is None) then a value error is raised.
fill_proto(msg, values) : Convert a python representation of point in this space to a protobuf message. Mutates msg with the result.
Parameters: : - msg (proto_points.FundamentalPoint) – The protobuf message to fill.
- value (Any) – The pythonic representation of the point.
classmethod from_proto(message) : Create a Space Object from a protobuf representation.
Parameters: : message (proto_space) – The protobuf message to convert.
Returns: : The Space subclass created from the protobuf message
Return type: : UnrealSpace
classmethod is_empty_definition(message) : Returns True iff this space has magnitude 0.
Parameters: : message (proto_space) – The protobuf message to check for emptiness.
Returns: : True iff the space is empty.
Return type: : bool
classmethod merge(*spaces) : Merge multiple BoxSpaces into a single space.
Parameters: : *spaces (List*[BoxSpace]*) – The spaces to merge.
Returns: : The merged space.
Return type: : BoxSpace
Raises: : TypeError – If any of the spaces are not BoxSpaces.
Examples
>>> 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])True
process_data(msg) : Convert a protobuf message corresponding to a point in this space to a pythonic representation.
Parameters: : msg (proto_points.FundamentalPoint) – The protobuf message to convert.
Returns: : The pythonic representation of the point.
Return type: : np.ndarray
proto_space
: alias of BoxSpace
to_normalized() : Normalize the bounds of the space to be between 0 and 1
Returns: : The normalized space. A modified version of the space this method is called on
Return type: : BoxSpace
Examples
>>> space = BoxSpace([0, 0],[2, 2])>>> space.to_normalized() == BoxSpace([0., 0.], [1., 1.])True