Skip to content

Simplified base logger's API #980

@vfdev-5

Description

@vfdev-5

🚀 Feature

Idea is to simplify current logger's API by creating a shortcut methods:
Currently, to log output parameters and optmizer's params we do (example is for TB, but is generic for others too):

    logger = TensorboardLogger(...)
    logger.attach(
        trainer,
        log_handler=OutputHandler(tag="training", metric_names="all"),
        event_name=Events.ITERATION_COMPLETED(every=log_every_iters),
    )
    logger.attach(
        trainer,
        log_handler=OptimizerParamsHandler(optimizer, param_name="lr", tag=k),
        event_name=Events.ITERATION_STARTED(every=log_every_iters),
    )

Proposed API:

    logger = TensorboardLogger(...)
    logger.attach_output_handler(
        trainer,
        tag="training", metric_names="all",  # other args, kwargs of OutputHandler
        event_name=Events.ITERATION_COMPLETED(every=log_every_iters),
    )
    logger.attach_opt_params_handler(
        trainer,
        optimizer, param_name="lr", tag=k, # other args, kwargs of OutputHandler
        event_name=Events.ITERATION_STARTED(every=log_every_iters),
    )

In addition, this can fix "bad-practice" current implementation of setup_any_logging taking as input logger and logging_module:

def setup_any_logging(logger, logger_module, trainer, optimizers, evaluators, log_every_iters):

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions