base#


class DataScope(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: StrEnum

TRAIN = 'train'#
TEST = 'test'#
UPDATE = 'update'#
INFO = 'info'#
class BaseLogger(train_interval: int = 1000, test_interval: int = 1, update_interval: int = 1000, info_interval: int = 1, exclude_arrays: bool = True)[source]#

Bases: ABC

The base class for any logger which is compatible with trainer.

Parameters:
  • train_interval – the log interval in log_train_data(). Default to 1000.

  • test_interval – the log interval in log_test_data(). Default to 1.

  • update_interval – the log interval in log_update_data(). Default to 1000.

  • info_interval – the log interval in log_info_data(). Default to 1.

  • exclude_arrays – whether to exclude numpy arrays from the logger’s output

abstract write(step_type: str, step: int, data: dict[str, int | Number | number | ndarray | float]) None[source]#

Specify how the writer is used to log data.

Parameters:
  • step_type (str) – namespace which the data dict belongs to.

  • step – stands for the ordinate of the data dict.

  • data – the data to write with format {key: value}.

abstract prepare_dict_for_logging(log_data: dict) dict[str, int | Number | number | ndarray | float][source]#

Prepare the dict for logging by filtering out invalid data types.

If necessary, reformulate the dict to be compatible with the writer.

Parameters:

log_data – the dict to be prepared for logging.

Returns:

the prepared dict.

abstract finalize() None[source]#

Finalize the logger, e.g., close writers and connections.

log_train_data(log_data: dict, step: int) None[source]#

Use writer to log statistics generated during training.

Parameters:
  • log_data – a dict containing the information returned by the collector during the train step.

  • step – stands for the timestep the collector result is logged.

log_test_data(log_data: dict, step: int) None[source]#

Use writer to log statistics generated during evaluating.

:param log_data:a dict containing the information returned by the collector during the evaluation step. :param step: stands for the timestep the collector result is logged.

log_update_data(log_data: dict, step: int) None[source]#

Use writer to log statistics generated during updating.

:param log_data:a dict containing the information returned during the policy update step. :param step: stands for the timestep the policy training data is logged.

log_info_data(log_data: dict, step: int) None[source]#

Use writer to log global statistics.

Parameters:
  • log_data – a dict containing information of data collected at the end of an epoch.

  • step – stands for the timestep the training info is logged.

abstract save_data(epoch: int, env_step: int, gradient_step: int, save_checkpoint_fn: Callable[[int, int, int], str] | None = None) None[source]#

Use writer to log metadata when calling save_checkpoint_fn in trainer.

Parameters:
  • epoch – the epoch in trainer.

  • env_step – the env_step in trainer.

  • gradient_step – the gradient_step in trainer.

  • save_checkpoint_fn (function) – a hook defined by user, see trainer documentation for detail.

abstract restore_data() tuple[int, int, int][source]#

Restore internal data if present and return the metadata from existing log for continuation of training.

If it finds nothing or an error occurs during the recover process, it will return the default parameters.

Returns:

epoch, env_step, gradient_step.

abstract static restore_logged_data(log_path: str) dict[str, ndarray | dict[str, dict[str, ndarray | dict[str, TRestoredData]]]][source]#

Load the logged data from disk for post-processing.

Returns:

a dict containing the logged data.

class LazyLogger[source]#

Bases: BaseLogger

A logger that does nothing. Used as the placeholder in trainer.

Parameters:
  • train_interval – the log interval in log_train_data(). Default to 1000.

  • test_interval – the log interval in log_test_data(). Default to 1.

  • update_interval – the log interval in log_update_data(). Default to 1000.

  • info_interval – the log interval in log_info_data(). Default to 1.

  • exclude_arrays – whether to exclude numpy arrays from the logger’s output

prepare_dict_for_logging(data: dict[str, int | Number | number | ndarray | float]) dict[str, int | Number | number | ndarray | float][source]#

Prepare the dict for logging by filtering out invalid data types.

If necessary, reformulate the dict to be compatible with the writer.

Parameters:

log_data – the dict to be prepared for logging.

Returns:

the prepared dict.

write(step_type: str, step: int, data: dict[str, int | Number | number | ndarray | float]) None[source]#

The LazyLogger writes nothing.

finalize() None[source]#

Finalize the logger, e.g., close writers and connections.

save_data(epoch: int, env_step: int, gradient_step: int, save_checkpoint_fn: Callable[[int, int, int], str] | None = None) None[source]#

Use writer to log metadata when calling save_checkpoint_fn in trainer.

Parameters:
  • epoch – the epoch in trainer.

  • env_step – the env_step in trainer.

  • gradient_step – the gradient_step in trainer.

  • save_checkpoint_fn (function) – a hook defined by user, see trainer documentation for detail.

restore_data() tuple[int, int, int][source]#

Restore internal data if present and return the metadata from existing log for continuation of training.

If it finds nothing or an error occurs during the recover process, it will return the default parameters.

Returns:

epoch, env_step, gradient_step.

static restore_logged_data(log_path: str) dict[source]#

Load the logged data from disk for post-processing.

Returns:

a dict containing the logged data.