schola.core.spaces.discrete.DiscreteSpace
Class Definition
class schola.core.spaces.discrete.DiscreteSpace(n)Bases: Discrete, UnrealSpace
A Space representing a single discrete value.
See also:
gymnasium.spaces.Discrete– The gym space object that this class is analogous toproto_spaces.DiscreteSpace– The protobuf representation of this space
Parameters
n
Type: int
The number of discrete values in the space. e.g. space is one value in interval [0,n]
Attributes
n
Type: int
The number of discrete values in the space.
is_np_flattenable
Checks whether this space can be flattened to aspaces.Box.
np_random
Lazily seed the PRNG since this is expensive and only needed if sampling from this space.
shape
Return the shape of the space as an immutable property.
proto_space
Alias ofDiscreteSpace
Methods
__init__
__init__(n)Constructor of Discrete space.
This will construct the space {start, …, start + n - 1}.
Parameters:
- n (
int) – The number of elements of this space - seed – Optionally, you can use this argument to seed the RNG that is used to sample from the
Dictspace - start (
int) – The smallest element of this space
contains
contains(x)Return boolean specifying if x is a valid member of this space.
fill_proto
fill_proto(msg, value)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
from_jsonable
from_jsonable(sample_n)Converts a list of json samples to a list of np.int64.
from_proto
@classmethodfrom_proto(message)Create a Space Object from a protobuf representation.
is_empty_definition
@classmethodis_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
merge
@classmethodmerge(*spaces)Merge multiple DiscreteSpaces into a single space.
Parameters:
- *spaces (
List[Union[DiscreteSpace, MultiDiscreteSpace]]) – The spaces to merge
Returns: The merged space.
Return type: MultiDiscreteSpace
Raises: TypeError – If any of the spaces are not Discrete or MultiDiscrete.
See also: merge_discrete_like_spaces – Merge multiple Discrete or MultiDiscrete spaces into a single MultiDiscrete space.
process_data
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
sample
sample(mask=None)Generates a single random sample from this space.
seed
seed(seed=None)Seed the PRNG of this space and possibly the PRNGs of subspaces.
to_jsonable
to_jsonable(sample_n)Converts a list of samples to a list of ints.
to_normalized
to_normalized()Returns a normalized version of the space. Is a noop if a space subclass does not implement to_normalized.
Returns: The normalized space.
Return type: UnrealSpace