sinergym.utils.wrappers.WandBLogger

class sinergym.utils.wrappers.WandBLogger(env: Env, entity: str | None = None, project_name: str | None = None, run_name: str | None = None, group: str | None = None, job_type: str | None = None, tags: List[str] | None = None, episode_percentage: float = 0.9, save_code: bool = False, dump_frequency: int = 1000, artifact_save: bool = True, artifact_type: str = 'output', excluded_info_keys: List[str] = ['reward', 'action', 'timestep', 'month', 'day', 'hour', 'time_elapsed(hours)', 'reward_weight', 'is_raining'], excluded_episode_summary_keys: List[str] = ['terminated', 'truncated'])
__init__(env: Env, entity: str | None = None, project_name: str | None = None, run_name: str | None = None, group: str | None = None, job_type: str | None = None, tags: List[str] | None = None, episode_percentage: float = 0.9, save_code: bool = False, dump_frequency: int = 1000, artifact_save: bool = True, artifact_type: str = 'output', excluded_info_keys: List[str] = ['reward', 'action', 'timestep', 'month', 'day', 'hour', 'time_elapsed(hours)', 'reward_weight', 'is_raining'], excluded_episode_summary_keys: List[str] = ['terminated', 'truncated'])

Wrapper to log data in WandB platform. It is required to be wrapped by a BaseLoggerWrapper child class previously.

Parameters:
  • env (Env) – Original Sinergym environment.

  • entity (Optional[str]) – The entity to which the project belongs. If you are using a previous wandb run, it is not necessary to specify it. Defaults to None.

  • project_name (Optional[str]) – The project name. If you are using a previous wandb run, it is not necessary to specify it. Defaults to None.

  • run_name (Optional[str]) – The name of the run. Defaults to None (Sinergym env name + wandb unique identifier).

  • group (Optional[str]) – The name of the group to which the run belongs. Defaults to None.

  • job_type (Optional[str]) – The type of job. Defaults to None.

  • tags (Optional[List[str]]) – List of tags for the run. Defaults to None.

  • episode_percentage (float) – Percentage of episode which must be completed to log episode summary. Defaults to 0.9.

  • save_code (bool) – Whether to save the code in the run. Defaults to False.

  • dump_frequency (int) – Frequency to dump log in platform. Defaults to 1000.

  • artifact_save (bool) – Whether to save artifacts in WandB. Defaults to True.

  • artifact_type (str) – Type of artifact to save. Defaults to ‘output’.

  • excluded_info_keys (List[str]) – List of keys to exclude from info dictionary. Defaults to [‘reward’, ‘action’, ‘timestep’, ‘month’, ‘day’, ‘hour’, ‘time_elapsed(hours)’, ‘reward_weight’, ‘is_raining’].

  • excluded_episode_summary_keys (List[str]) – List of keys to exclude from episode summary. Defaults to [‘terminated’, ‘truncated’].

Methods

__init__(env[, entity, project_name, ...])

Wrapper to log data in WandB platform.

class_name()

Returns the class name of the wrapper.

close()

Recording last episode summary and close env.

get_wrapper_attr(name)

Gets an attribute from the wrapper and lower environments if name doesn't exist in this object.

has_wrapper_attr(name)

Checks if the given attribute is within the wrapper or its environment.

render()

Uses the render() of the env that can be overwritten to change the returned data.

reset([seed, options])

Reset the environment.

save_artifact()

Save sinergym output as artifact in WandB platform.

set_wandb_finish(wandb_finish)

Set if WandB run must be finished when environment is closed.

set_wrapper_attr(name, value, *[, force])

Sets an attribute on this wrapper or lower environment if name is already defined.

step(action)

Sends action to the environment.

wandb_log()

Log last step information in WandB platform.

wandb_log_summary()

Log episode summary in WandB platform.

wrapper_spec(**kwargs)

Generates a WrapperSpec for the wrappers.

Attributes

action_space

Return the Env action_space unless overwritten then the wrapper action_space is used.

logger

metadata

Returns the Env metadata.

np_random

Returns the Env np_random attribute.

np_random_seed

Returns the base environment's np_random_seed.

observation_space

Return the Env observation_space unless overwritten then the wrapper observation_space is used.

render_mode

Returns the Env render_mode.

spec

Returns the Env spec attribute with the WrapperSpec if the wrapper inherits from EzPickle.

unwrapped

Returns the base environment of the wrapper.

close() None

Recording last episode summary and close env.

Parameters:

wandb_finish (bool) – Whether to finish WandB run. Defaults to True.

logger = <Logger WRAPPER WandBLogger (INFO)>
reset(seed: int | None = None, options: Dict[str, Any] | None = None) Tuple[ndarray, Dict[str, Any]]

Reset the environment. Recording episode summary in WandB platform if it is not the first episode.

Parameters:
  • seed (Optional[int]) – The seed that is used to initialize the environment’s episode (np_random). if value is None, a seed will be chosen from some source of entropy. Defaults to None.

  • options (Optional[Dict[str, Any]]) – Additional information to specify how the environment is reset. Defaults to None.

Returns:

Current observation and info context with additional information.

Return type:

Tuple[np.ndarray,Dict[str,Any]]

save_artifact() None

Save sinergym output as artifact in WandB platform.

set_wandb_finish(wandb_finish: bool) None

Set if WandB run must be finished when environment is closed.

Parameters:

wandb_finish (bool) – Whether to finish WandB run.

step(action: ndarray) Tuple[ndarray, float, bool, bool, Dict[str, Any]]

Sends action to the environment. Logging new interaction information in WandB platform.

Parameters:

action (np.ndarray) – Action selected by the agent.

Returns:

Observation for next timestep, reward obtained, Whether the episode has ended or not, Whether episode has been truncated or not, and a dictionary with extra information

Return type:

Tuple[np.ndarray, float, bool, Dict[str, Any]]

wandb_log() None

Log last step information in WandB platform.

wandb_log_summary() None

Log episode summary in WandB platform.