composer.loggers.file_logger#
Logs to a file or to the terminal.
Classes
Logs to a file or to the terminal. |
- class composer.loggers.file_logger.FileLogger(filename='stdout', *, buffer_size=1, log_level=LogLevel.EPOCH, log_interval=1, flush_interval=100, config=None)[source]#
Bases:
composer.core.logging.base_backend.LoggerCallback
Logs to a file or to the terminal.
- Example usage:
from composer.loggers import FileLogger from composer.trainer import Trainer from composer.core.logging import LogLevel logger = FileLogger( filename="log.txt", buffer_size=1, log_level=LogLevel.BATCH, log_interval=2, flush_interval=50 ) trainer = Trainer( model=model, train_dataloader=train_dataloader, eval_dataloader=eval_dataloader, max_duration="1ep", optimizers=[optimizer], loggers=[logger] )
Example output:
[FIT][step=2]: { "logged_metric": "logged_value", } [EPOCH][step=2]: { "logged_metric": "logged_value", } [BATCH][step=2]: { "logged_metric": "logged_value", } [EPOCH][step=3]: { "logged_metric": "logged_value", }
- Parameters
filename (str, optional) โ File to log to. Can be a filepath,
"stdout"
, or"stderr"
. Default:"stdout"
. Filepaths should be specified relative to therun_directory
.buffer_size (int, optional) โ Buffer size. See
open()
. Default:1
for line buffering.log_level (LogLevel, optional) โ
LogLevel
(i.e. unit of resolution) at which to record. Default:EPOCH
.log_interval (int, optional) โ Frequency to print logs. If
log_level
isEPOCH
, logs will only be recorded every n epochs. Iflog_level
isBATCH
, logs will be printed every n batches. Otherwise, iflog_level
isFIT
, this parameter is ignored, as calls at theFIT
log level are always recorded. Default:1
.flush_interval (int, optional) โ How frequently to flush the log to the file, relative to the
log_level
. For example, if thelog_level
isEPOCH
, then the logfile will be flushed every n epochs. If thelog_level
isBATCH
, then the logfile will be flushed every n batches. Default:100
.