-
-
Notifications
You must be signed in to change notification settings - Fork 656
Closed
Description
🚀 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:
ignite/ignite/contrib/engines/common.py
Line 209 in d1aa5fd
| def setup_any_logging(logger, logger_module, trainer, optimizers, evaluators, log_every_iters): |
sdesrozis and failable