composer.core.logging.base_backend#

Base class for logger callback.

Classes

LoggerCallback

Base class for logger callback.

class composer.core.logging.base_backend.LoggerCallback[source]#

Bases: composer.core.callback.Callback, abc.ABC

Base class for logger callback. This is a Callback with an additional interface for logging metrics, log_metric(). Custom loggers should extend this class. Data to be logged should be of the type TLogData (i.e. a {'name': value} mapping).

For example, to define a custom logger and use it in training:

from composer.core.logging import LoggerCallback

class MyLogger(LoggerCallback)

    def log_metric(self, timestamp, log_level, data):
        print(f'Timestamp: {timestamp}: {log_level} {data}')

trainer = Trainer(
    model=model,
    train_dataloader=train_dataloader,
    eval_dataloader=eval_dataloader,
    max_duration="1ep",
    optimizers=[optimizer],
    loggers=[MyLogger()]
)
log_metric(timestamp, log_level, data)[source]#

Called by the Logger for metrics where will_log() returned True.

The logger callback should override this function to log the data (e.g. write it to a file, send it to a server, etcโ€ฆ).

Parameters
  • timestamp (Timestamp) โ€“ The timestamp for the logged data.

  • log_level (LogLevel) โ€“ The log level.

  • data (TLogData) โ€“ The metric to log.

will_log(state, log_level)[source]#

Called by the Logger to determine whether to log a metric.

By default, it always returns True, but this method can be overridden.

Parameters
  • state (State) โ€“ The global state object.

  • log_level (LogLevel) โ€“ The log level

Returns

bool โ€“ Whether to log a metric call, given the State and LogLevel.