BaseObservation

class grid2op.Observation.BaseObservation(gridobj, obs_env=None, action_helper=None, seed=None)[source]

Basic class representing an observation.

All observation must derive from this class and implement all its abstract methods.

action_helper

A reprensentation of the possible action space.

Type

grid2op.Action.ActionSpace

year

The current year

Type

int

month

The current month (0 = january, 11 = december)

Type

int

day

The current day of the month

Type

int

hour_of_day

The current hour of the day

Type

int

minute_of_hour

The current minute of the current hour

Type

int

day_of_week

The current day of the week. Monday = 0, Sunday = 6

Type

int

prod_p

The active production value of each generator (expressed in MW).

Type

numpy.ndarray, dtype:float

prod_q

The reactive production value of each generator (expressed in MVar).

Type

numpy.ndarray, dtype:float

prod_v

The voltage magnitude of the bus to which each generator is connected (expressed in kV).

Type

numpy.ndarray, dtype:float

load_p

The active load value of each consumption (expressed in MW).

Type

numpy.ndarray, dtype:float

load_q

The reactive load value of each consumption (expressed in MVar).

Type

numpy.ndarray, dtype:float

load_v

The voltage magnitude of the bus to which each consumption is connected (expressed in kV).

Type

numpy.ndarray, dtype:float

p_or

The active power flow at the origin end of each powerline (expressed in MW).

Type

numpy.ndarray, dtype:float

q_or

The reactive power flow at the origin end of each powerline (expressed in MVar).

Type

numpy.ndarray, dtype:float

v_or

The voltage magnitude at the bus to which the origin end of each powerline is connected (expressed in kV).

Type

numpy.ndarray, dtype:float

a_or

The current flow at the origin end of each powerline (expressed in A).

Type

numpy.ndarray, dtype:float

p_ex

The active power flow at the extremity end of each powerline (expressed in MW).

Type

numpy.ndarray, dtype:float

q_ex

The reactive power flow at the extremity end of each powerline (expressed in MVar).

Type

numpy.ndarray, dtype:float

v_ex

The voltage magnitude at the bus to which the extremity end of each powerline is connected (expressed in kV).

Type

numpy.ndarray, dtype:float

a_ex

The current flow at the extremity end of each powerline (expressed in A).

Type

numpy.ndarray, dtype:float

rho

The capacity of each powerline. It is defined at the observed current flow divided by the thermal limit of each powerline (no unit)

Type

numpy.ndarray, dtype:float

connectivity_matrix_

The connectivityt matrix (if computed, or None) see definition of connectivity_matrix() for more information

Type

numpy.ndarray, dtype:float

bus_connectivity_matrix_
The bus_connectivity_matrix_ matrix (if computed, or None) see definition of

BaseObservation.bus_connectivity_matrix() for more information

Type

numpy.ndarray, dtype:float

vectorized

The vector representation of this BaseObservation (if computed, or None) see definition of to_vect() for more information.

Type

numpy.ndarray, dtype:float

topo_vect

For each object (load, generator, ends of a powerline) it gives on which bus this object is connected in its substation. See grid2op.Backend.Backend.get_topo_vect() for more information.

Type

numpy.ndarray, dtype:int

line_status

Gives the status (connected / disconnected) for every powerline (True at position i means the powerline i is connected)

Type

numpy.ndarray, dtype:bool

timestep_overflow

Gives the number of time steps since a powerline is in overflow.

Type

numpy.ndarray, dtype:int

time_before_cooldown_line

For each powerline, it gives the number of time step the powerline is unavailable due to “cooldown” (see grid2op.Parameters.Parameters.NB_TIMESTEP_LINE_STATUS_REMODIF for more information). 0 means the an action will be able to act on this same powerline, a number > 0 (eg 1) means that an action at this time step cannot act on this powerline (in the example the agent have to wait 1 time step)

Type

numpy.ndarray, dtype:int

time_before_cooldown_sub

Same as BaseObservation.time_before_cooldown_line but for substations. For each substation, it gives the number of timesteps to wait before acting on this substation (see see grid2op.Parameters.Parameters.NB_TIMESTEP_TOPOLOGY_REMODIF for more information).

Type

numpy.ndarray, dtype:int

time_before_line_reconnectable

For each powerline, it gives the number of timesteps before the powerline can be reconnected. This only concerns the maintenance, outage (hazards) and disconnection due to cascading failures (including overflow). The same convention as for BaseObservation.time_before_cooldown_line and BaseObservation.time_before_cooldown_sub is adopted: 0 at position i means that the powerline can be reconnected. It there is 2 (for example) it means that the powerline i is unavailable for 2 timesteps (we will be able to re connect it not this time, not next time, but the following timestep)

Type

numpy.ndarray, dtype:int

time_next_maintenance

For each powerline, it gives the time of the next planned maintenance. For example if there is:

  • 1 at position i it means that the powerline i will be disconnected for maintenance operation at the next time step. A

  • 0 at position i means that powerline i is disconnected from the powergrid for maintenance operation at the current time step.

  • -1 at position i means that powerline i will not be disconnected for maintenance reason for this episode.

Type

numpy.ndarray, dtype:int

duration_next_maintenance

For each powerline, it gives the number of time step that the maintenance will last (if any). This means that, if at position i of this vector:

  • there is a 0: the powerline is not disconnected from the grid for maintenance

  • there is a 1, 2, … the powerline will be disconnected for at least 1, 2, … timestep (NB in all case, the powerline will stay disconnected until a grid2op.BaseAgent.BaseAgent performs the proper grid2op.BaseAction.BaseAction to reconnect it).

Type

numpy.ndarray, dtype:int

target_dispatch

For each generators, it gives the target redispatching, asked by the agent. This is the sum of all redispatching asked by the agent for during all the episode. It for each generator it is a number between: - pmax and pmax. Note that there is information about all generators there, even the one that are not dispatchable.

Type

numpy.ndarray, dtype:float

actual_dispatch

For each generators, it gives the redispatching currently implemented by the environment. Indeed, the environment tries to implement at best the BaseObservation.target_dispatch, but sometimes, due to physical limitation (pmin, pmax, ramp min and ramp max) it cannot. In this case, only the best possible redispatching is implemented at the current time step, and this is what this vector stores. Note that there is information about all generators there, even the one that are not dispatchable.

Type

numpy.ndarray, dtype:float

__eq__(other)[source]

Test the equality of two actions.

2 actions are said to be identical if the have the same impact on the powergrid. This is unlrelated to their respective class. For example, if an BaseAction is of class BaseAction and doesn’t act on the _injection, it can be equal to a an BaseAction of derived class TopologyAction (if the topological modification are the same of course).

This implies that the attributes BaseAction.authorized_keys is not checked in this method.

Note that if 2 actions doesn’t act on the same powergrid, or on the same backend (eg number of loads, or generators is not the same in self and other, or they are not in the same order) then action will be declared as different.

Known issue if two backend are different, but the description of the _grid are identical (ie all n_gen, n_load, n_line, sub_info, dim_topo, all vectors *_to_subid, and *_pos_topo_vect are identical) then this method will not detect the backend are different, and the action could be declared as identical. For now, this is only a theoretical behaviour: if everything is the same, then probably, up to the naming convention, then the powergrid are identical too.

Parameters

other (BaseObservation) – An instance of class BaseAction to which “self” will be compared.

__init__(gridobj, obs_env=None, action_helper=None, seed=None)[source]

Initialize self. See help(type(self)) for accurate signature.

bus_connectivity_matrix()[source]

If we denote by nb_bus the total number bus of the powergrid.

The bus_connectivity_matrix will have a size nb_bus, nb_bus and will be made of 0 and 1.

If bus_connectivity_matrix[i,j] = 1 then at least a power line connects bus i and bus j. Otherwise, nothing connects it.

Returns

res – The bus connectivity matrix

Return type

numpy.ndarray, shape:nb_bus,nb_bus dtype:float

connectivity_matrix()[source]

Computes and return the “connectivity matrix” con_mat. if “dim_topo = 2 * n_line + n_prod + n_conso” It is a matrix of size dim_topo, dim_topo, with values 0 or 1. For two objects (lines extremity, generator unit, load) i,j :

  • if i and j are connected on the same substation:
    • if conn_mat[i,j] = 0 it means the objects id’ed i and j are not connected to the same bus.

    • if conn_mat[i,j] = 1 it means the objects id’ed i and j are connected to the same bus, are both end of the same powerline

  • if i and j are not connected on the same substation then`conn_mat[i,j] = 0` except if i and j are the two extremities of the same power line, in this case conn_mat[i,j] = 1.

By definition, the diagonal is made of 0.

Returns

res – The connectivity matrix, as defined above

Return type

numpy.ndarray, shape:dim_topo,dim_topo, dtype:float

copy()[source]

Make a (deep) copy of the observation.

Returns

res – The deep copy of the observation

Return type

BaseObservation

reset()[source]

Reset the BaseObservation to a blank state, where everything is set to either None or to its default value.

simulate(action, time_step=0)[source]

This method is used to simulate the effect of an action on a forecasted powergrid state. It has the same return value as the grid2op.Environment.Environment.step() function.

Parameters
Raises

grid2op.Exceptions.NoForecastAvailable – if no forecast are available for the time_step querried.

Returns

  • observation (grid2op.Observation.Observation) – agent’s observation of the current environment

  • reward (float) – amount of reward returned after previous action

  • done (bool) – whether the episode has ended, in which case further step() calls will return undefined results

  • info (dict) – contains auxiliary diagnostic information (helpful for debugging, and sometimes learning)

state_of(_sentinel=None, load_id=None, gen_id=None, line_id=None, substation_id=None)[source]

Return the state of this action on a give unique load, generator unit, powerline of substation. Only one of load, gen, line or substation should be filled.

The querry of these objects can only be done by id here (ie by giving the integer of the object in the backed). The ActionSpace has some utilities to access them by name too.

Parameters
  • _sentinel (None) – Used to prevent positional parameters. Internal, do not use.

  • load_id (int) – ID of the load we want to inspect

  • gen_id (int) – ID of the generator we want to inspect

  • line_id (int) – ID of the powerline we want to inspect

  • substation_id (int) – ID of the powerline we want to inspect

Returns

res – A dictionnary with keys and value depending on which object needs to be inspected:

  • if a load is inspected, then the keys are:

    • ”p” the active value consumed by the load

    • ”q” the reactive value consumed by the load

    • ”v” the voltage magnitude of the bus to which the load is connected

    • ”bus” on which bus the load is connected in the substation

    • ”sub_id” the id of the substation to which the load is connected

  • if a generator is inspected, then the keys are:

    • ”p” the active value produced by the generator

    • ”q” the reactive value consumed by the generator

    • ”v” the voltage magnitude of the bus to which the generator is connected

    • ”bus” on which bus the generator is connected in the substation

    • ”sub_id” the id of the substation to which the generator is connected

    • ”actual_dispatch” the actual dispatch implemented for this generator

    • ”target_dispatch” the target dispatch (cumulation of all previously asked dispatch by the agent) for this generator

  • if a powerline is inspected then the keys are “origin” and “extremity” each being dictionnary with keys:

    • ”p” the active flow on line end (extremity or origin)

    • ”q” the reactive flow on line end (extremity or origin)

    • ”v” the voltage magnitude of the bus to which the line end (extremity or origin) is connected

    • ”bus” on which bus the line end (extremity or origin) is connected in the substation

    • ”sub_id” the id of the substation to which the generator is connected

    • ”a” the current flow on the line end (extremity or origin)

    In the case of a powerline, additional information are:

    • ”maintenance”: information about the maintenance operation (time of the next maintenance and duration of this next maintenance.

    • ”cooldown_time”: for how many timestep i am not supposed to act on the powerline due to cooldown (see grid2op.Parameters.Parameters.NB_TIMESTEP_LINE_STATUS_REMODIF for more information)

    • ”indisponibility”: for how many timestep the powerline is unavailable (disconnected, and it’s impossible to reconnect it) due to hazards, maintenance or overflow (incl. cascading failure)

  • if a substation is inspected, it returns the topology to this substation in a dictionary with keys:

    • ”topo_vect”: the representation of which object is connected where

    • ”nb_bus”: number of active buses in this substations

    • ”cooldown_time”: for how many timestep i am not supposed to act on the substation due to cooldown (see grid2op.Parameters.Parameters.NB_TIMESTEP_TOPOLOGY_REMODIF for more information)

Return type

dict

Raises

Grid2OpException – If _sentinel is modified, or if None of the arguments are set or alternatively if 2 or more of the parameters are being set.

abstractmethod update(env)[source]

Update the actual instance of BaseObservation with the new received value from the environment.

An observation is a description of the powergrid perceived by an agent. The agent takes his decision based on the current observation and the past rewards.

This method update receive complete detailed information about the powergrid, but that does not mean an agent sees everything. For example, it is possible to derive this class to implement some noise in the generator or load, or flows to mimic sensor inaccuracy.

It is also possible to give fake information about the topology, the line status etc.

In the Grid2Op framework it’s also through the observation that the agent has access to some forecast (the way forecast are handled depends are implemented in this class). For example, forecast data (retrieved thanks to chronics_handler) are processed, but can be processed differently. One can apply load / production forecast to each _grid state, or to make forecast for one “reference” _grid state valid a whole day and update this one only etc. All these different mechanisms can be implemented in Grid2Op framework by overloading the update observation method.

This class is really what a dispatcher observes from it environment. It can also include some temperatures, nebulosity, wind etc. can also be included in this class.

class grid2op.Observation.CompleteObservation(gridobj, obs_env=None, action_helper=None, seed=None)[source]

This class represent a complete observation, where everything on the powergrid can be observed without any noise.

This is the only BaseObservation implemented (and used) in Grid2Op. Other type of observation, for other usage can of course be implemented following this example.

It has the same attributes as the BaseObservation class. Only one is added here.

For a CompleteObservation the unique representation as a vector is:

  1. the year [1 element]

  2. the month [1 element]

  3. the day [1 element]

  4. the day of the week. Monday = 0, Sunday = 6 [1 element]

  5. the hour of the day [1 element]

  6. minute of the hour [1 element]

  7. BaseObservation.prod_p the active value of the productions [BaseObservation.n_gen elements]

  8. BaseObservation.prod_q the reactive value of the productions [BaseObservation.n_gen elements]

  9. BaseObservation.prod_q the voltage setpoint of the productions [BaseObservation.n_gen elements]

  10. BaseObservation.load_p the active value of the loads [BaseObservation.n_load elements]

  11. BaseObservation.load_q the reactive value of the loads [BaseObservation.n_load elements]

  12. BaseObservation.load_v the voltage setpoint of the loads [BaseObservation.n_load elements]

  13. BaseObservation.p_or active flow at origin of powerlines [BaseObservation.n_line elements]

  14. BaseObservation.q_or reactive flow at origin of powerlines [BaseObservation.n_line elements]

  15. BaseObservation.v_or voltage at origin of powerlines [BaseObservation.n_line elements]

  16. BaseObservation.a_or current flow at origin of powerlines [BaseObservation.n_line elements]

  17. BaseObservation.p_ex active flow at extremity of powerlines [BaseObservation.n_line elements]

  18. BaseObservation.q_ex reactive flow at extremity of powerlines [BaseObservation.n_line elements]

  19. BaseObservation.v_ex voltage at extremity of powerlines [BaseObservation.n_line elements]

  20. BaseObservation.a_ex current flow at extremity of powerlines [BaseObservation.n_line elements]

  21. BaseObservation.rho line capacity used (current flow / thermal limit) [BaseObservation.n_line elements]

  22. BaseObservation.line_status line status [BaseObservation.n_line elements]

  23. BaseObservation.timestep_overflow number of timestep since the powerline was on overflow (0 if the line is not on overflow)[BaseObservation.n_line elements]

  24. BaseObservation.topo_vect representation as a vector of the topology [for each element it gives its bus]. See grid2op.Backend.Backend.get_topo_vect() for more information.

  25. BaseObservation.time_before_cooldown_line representation of the cooldown time on the powerlines [BaseObservation.n_line elements]

  26. BaseObservation.time_before_cooldown_sub representation of the cooldown time on the substations [BaseObservation.n_sub elements]

  27. BaseObservation.time_before_line_reconnectable number of timestep to wait before a powerline can be reconnected (it is disconnected due to maintenance, cascading failure or overflow) [BaseObservation.n_line elements]

  28. BaseObservation.time_next_maintenance number of timestep before the next maintenance (-1 means no maintenance are planned, 0 a maintenance is in operation) [BaseObservation.n_line elements]

  29. BaseObservation.duration_next_maintenance duration of the next maintenance. If a maintenance is taking place, this is the number of timestep before it ends. [BaseObservation.n_line elements]

  30. BaseObservation.target_dispatch the target dispatch for each generator [BaseObservation.n_gen elements]

  31. BaseObservation.actual_dispatch the actual dispatch for each generator [BaseObservation.n_gen elements]

This behavior is specified in the BaseObservation.attr_list_vect vector.

dictionnarized

The representation of the action in a form of a dictionnary. See the definition of CompleteObservation.to_dict() for a description of this dictionnary.

Type

dict

__init__(gridobj, obs_env=None, action_helper=None, seed=None)[source]

Initialize self. See help(type(self)) for accurate signature.

bus_connectivity_matrix()[source]

If we denote by nb_bus the total number bus of the powergrid.

The bus_connectivity_matrix will have a size nb_bus, nb_bus and will be made of 0 and 1.

If bus_connectivity_matrix[i,j] = 1 then at least a power line connects bus i and bus j. Otherwise, nothing connects it.

Returns

res – The bus connectivity matrix

Return type

numpy.ndarray, shape:nb_bus,nb_bus dtype:float

connectivity_matrix()[source]

Computes and return the “connectivity matrix” con_mat. if “dim_topo = 2 * n_line + n_prod + n_conso” It is a matrix of size dim_topo, dim_topo, with values 0 or 1. For two objects (lines extremity, generator unit, load) i,j :

  • if i and j are connected on the same substation:
    • if conn_mat[i,j] = 0 it means the objects id’ed i and j are not connected to the same bus.

    • if conn_mat[i,j] = 1 it means the objects id’ed i and j are connected to the same bus, are both end of the same powerline

  • if i and j are not connected on the same substation then`conn_mat[i,j] = 0` except if i and j are the two extremities of the same power line, in this case conn_mat[i,j] = 1.

By definition, the diagonal is made of 0.

Returns

res – The connectivity matrix, as defined above

Return type

numpy.ndarray, shape:dim_topo,dim_topo, dtype:float

from_vect(vect)[source]

Convert back an observation represented as a vector into a proper observation.

Some convertion are done silently from float to the type of the corresponding observation attribute.

Parameters

vect (numpy.ndarray) – A representation of an BaseObservation in the form of a vector that is used to convert back the current observation to be equal to the vect.

to_dict()[source]
update(env)[source]

This use the environement to update properly the BaseObservation.

Parameters

env (grid2op.Environment.Environment) – The environment from which to update this observation.

class grid2op.Observation.ObsEnv(backend_instanciated, parameters, reward_helper, obsClass, action_helper, thermal_limit_a, legalActClass, donothing_act, other_rewards={})[source]

This class is an ‘Emulator’ of a grid2op.Environment used to be able to ‘simulate’ forecasted grid states. It should not be used outside of an grid2op.BaseObservation instance, or one of its derivative.

It contains only the most basic element of an Environment. See grid2op.Environment for more details.

This class is reserved for internal use. Do not attempt to do anything with it.

__init__(backend_instanciated, parameters, reward_helper, obsClass, action_helper, thermal_limit_a, legalActClass, donothing_act, other_rewards={})[source]

Initialize self. See help(type(self)) for accurate signature.

copy()[source]

Implement the deep copy of this instance.

Returns

res – A deep copy of this instance.

Return type

ObsEnv

get_obs()[source]

Method to retrieve the “forecasted grid” as a valid observation object.

Returns

res – The observation available.

Return type

grid2op.Observation.Observation

init(new_state_action, time_stamp, timestep_overflow)[source]

Initialize a “forecasted grid state” based on the new injections, possibly new topological modifications etc.

Parameters
  • new_state_action (grid2op.Action) – The action that is performed on the powergrid to get the forecast at the current date. This “action” is NOT performed by the user, it’s performed internally by the BaseObservation to have a “forecasted” powergrid with the forecasted values present in the chronics.

  • time_stamp (datetime.datetime) – The time stamp of the forecast, as a datetime.datetime object. NB this is not the time stamp at which the forecast is produced, but the time stamp of the powergrid forecasted.

  • timestep_overflow (numpy.ndarray) – The see grid2op.Env.timestep_overflow for a better description of this argument.

Returns

Return type

None

init_backend(init_grid_path, chronics_handler, backend, names_chronics_to_backend, actionClass, observationClass, rewardClass, legalActClass)[source]

backend should not be the backend of the environment!!!

Parameters
  • init_grid_path

  • chronics_handler

  • backend

  • names_chronics_to_backend

  • actionClass

  • observationClass

  • rewardClass

  • legalActClass

simulate(action)[source]

This function is the core method of the ObsEnv. It allows to perform a simulation of what would give and action if it were to be implemented on the “forecasted” powergrid.

It has the same signature as grid2op.Environment.Environment.step(). One of the major difference is that it doesn’t check whether the action is illegal or not (but an implementation could be provided for this method). The reason for this is that there is not one single and unique way to “forecast” how the thermal limit will behave, which lines will be available or not, which actions will be done or not between the time stamp at which “simulate” is called, and the time stamp that is simulated.

Parameters

action (grid2op.Action.Action) – The action to test

Returns

  • observation (grid2op.Observation.Observation) – agent’s observation of the current environment

  • reward (float) – amount of reward returned after previous action

  • done (bool) – whether the episode has ended, in which case further step() calls will return undefined results

  • info (dict) – contains auxiliary diagnostic information (helpful for debugging, and sometimes learning). It is a dictionnary with keys:

    • ”disc_lines”: a numpy array (or None) saying, for each powerline if it has been disconnected

      due to overflow

    • ”is_illegal” (bool) whether the action given as input was illegal

    • ”is_ambiguous” (bool) whether the action given as input was ambiguous.

update_grid(env)[source]

Update this “emulated” environment with the real powergrid.

Parameters

env (grid2op.Environement._BasicEnv) – A reference to the environement

class grid2op.Observation.ObservationHelper(*args, **kwargs)[source]
__init__(*args, **kwargs)[source]

Env: requires grid2op.Environment.parameters and grid2op.Environment.backend to be valid

class grid2op.Observation.ObservationSpace(gridobj, env, rewardClass=None, observationClass=<class 'grid2op.Observation.CompleteObservation.CompleteObservation'>)[source]

Helper that provides usefull functions to manipulate BaseObservation.

BaseObservation should only be built using this Helper. It is absolutely not recommended to make an observation directly form its constructor.

This class represents the same concept as the “BaseObservation Space” in the OpenAI gym framework.

observationClass

Class used to build the observations. It defaults to CompleteObservation

Type

type

_empty_obs

An empty observation with the proper dimensions.

Type

BaseObservation.BaseObservation

parameters

Type of Parameters used to compute powerflow for the forecast.

Type

grid2op.Parameters.Parameters

rewardClass

Class used by the grid2op.Environment.Environment to send information about its state to the grid2op.BaseAgent.BaseAgent. You can change this class to differentiate between the reward of output of BaseObservation.simulate() and the reward used to train the BaseAgent.

Type

type

action_helper_env

BaseAction space used to create action during the BaseObservation.simulate()

Type

grid2op.Action.ActionSpace

reward_helper

BaseReward function used by the the BaseObservation.simulate() function.

Type

grid2op.Reward.HelperReward

obs_env

Instance of the environenment used by the BaseObservation Helper to provide forcecast of the grid state.

Type

ObsEnv

_empty_obs

An instance of the observation that is updated and will be sent to he BaseAgent.

Type

BaseObservation

__call__(env)[source]

Call self as a function.

__init__(gridobj, env, rewardClass=None, observationClass=<class 'grid2op.Observation.CompleteObservation.CompleteObservation'>)[source]

Env: requires grid2op.Environment.parameters and grid2op.Environment.backend to be valid

size_obs()[source]

Size if the observation vector would be flatten :return:

class grid2op.Observation.SerializableObservationSpace(gridobj, observationClass=<class 'grid2op.Observation.CompleteObservation.CompleteObservation'>)[source]

This class allows to serialize / de serialize the action space.

It should not be used inside an Environment, as some functions of the action might not be compatible with the serialization, especially the checking of whether or not an BaseObservation is legal or not.

observationClass

Type used to build the SerializableActionSpace._template_act

Type

type

_empty_obs

An instance of the “observationClass” provided used to provide higher level utilities

Type

BaseObservation

__init__(gridobj, observationClass=<class 'grid2op.Observation.CompleteObservation.CompleteObservation'>)[source]
Parameters
  • gridobj (grid2op.Space.GridObjects) – Representation of the objects in the powergrid.

  • observationClass (type) – Type of action used to build Space.SerializableSpace._template_obj

staticmethod from_dict(dict_)[source]

Allows the de-serialization of an object stored as a dictionnary (for example in the case of json saving).

Parameters

dict (dict) – Representation of an BaseObservation Space (aka SerializableObservationSpace) as a dictionnary.

Returns

res – An instance of an action space matching the dictionnary.

Return type

:class:SerializableObservationSpace

If you still can’t find what you’re looking for, try in one of the following pages: