Logml API

logml.logger

Logger class.

class Logger(n_epochs, n_batches, log_interval=1, name=None, *, styles='', sizes=6, average=None, silent=False, show_bar=True, show_time=True, bold_keys=False, name_style='')

Bases: object

Logger class. Handles int, float, str and bool values.

Parameters:
  • n_epochs (int) – Number of epochs.

  • n_batches (Optional[int]) – Number of batches per epoch. Set to None if not available.

  • log_interval (int, optional) – Number of batches between each log. None for 4 update per second. By default 1.

  • name (Optional[str], optional) – Name of the logger. It will be display at the top of the logs. By default None (no name).

  • styles (Union[Dict, str], optional) – Default style of the values. Include color, bold, italic and more See https://rich.readthedocs.io/en/stable/style.html for more details. E.g. {‘loss’: ‘bold red’, ‘acc’: ‘italic #af00ff’} Use a single string to apply the same style to all values. These styles can also be set or overwritten in the log method. By default, use rich default style.

  • sizes (Union[Dict, int], optional) – Default sizes to display for each numerical values. Note that the dot is counted as a character. E.g. {‘loss’: 3, ‘acc’: 2}. Use a single int to apply the same size to all values. These numbers can also be set or overwritten in the log method. By default 6.

  • average (Optional[List[str]], optional) – Default list of the values to average over the epoch. This can also be overwritten in the log method. By default None.

  • silent (bool, optional) – Whether to print the logs or not. By default False.

  • show_bar (bool, optional) – Whether to show the progress bar or not. By default True.

  • show_time (bool, optional) – Whether to show the time or not. By default True.

  • bold_keys (bool, optional) – Whether to bold the key or not. By default False.

  • name_style (str, optional) – Style of the name. By default, use the rich default style.

Examples

logger = Logger(n_epochs=10, n_batches=100)
for _ in range(10):
    for _ in logger.tqdm(range(100)):
        logger.log(loss=0.5, acc=0.9)

Attribute

stepint

Number of batches seen since the beginning.

current_epochint

Current epoch number (starting at 1).

current_batchint

Current batch number (starting at 1).

valsDict[str, VarType]

Last values called inside log (not averaged nor resized).

mean_valsDict[str, VarType]

Current mean values (only numerical values).

log(values, *, message='', styles=None, sizes=None, average=None)

Log the values with style.

Parameters:
  • values (Dict[str, Any]) – Values to log. E.g. {‘loss’: 0.1, ‘acc’: 0.9}

  • message (str, optional) – Message to display at the end of the log. By default empty.

  • styles (Union[Dict, str, None], optional) –

    Style of the values. Include color, bold, italic and more See https://rich.readthedocs.io/en/stable/style.html for more details. E.g.:

    {'loss': 'bold red', 'acc': 'italic #af00ff'}
    

    Use a single string to apply the same style to all values. By default None (use the default style).

  • sizes (Union[Dict, int], optional) –

    Size of the values to display for each numerical values. E.g.:

    {'loss': 7, 'acc': 2}
    

    Use a single int to apply the same size to all values. By default None (use the default style).

  • average (Optional[List[str]], optional) – List of the values to average over the epoch. None to not average. By default None.

Return type:

None

tqdm(iterable, *, reset_means=True)

Browse an iterable dataset and automatically update the epoch and batch.

No need to explicitly call new_epoch() or new_batch() as they are automatically called. If n_batches is not specified and the iterable implement a __len__ attribute, the number of batch is inferred and store in n_batches.

Parameters:
  • iterable (Iterable) – Iterable dataset.

  • reset_means (bool, optional) – Whether to reset the computed mean values at the start of the epoch. By default True.

Return type:

Any

new_epoch(*, reset_means=True)

Declare a new epoch.

Parameters:

reset_means (bool, optional) – Whether to reset the computed mean values at the start of the epoch. By default True.

Return type:

None

start_epoch(*, reset_means=True)

Declare a new epoch. Alias for new_epoch().

Return type:

None

new_batch()

Declare a new batch.

Return type:

None

start_batch()

Declare a new batch. Alias for new_batch().

Return type:

None

detach(*, skipline=True)

Stop the live display.

Stop the live display while keeping the current display visible in the terminal. :rtype: None

Note

Calling detach() or stop() is necessary to print something at the end of an epoch. Otherwise, the print will be shown above the live display.

stop()

Stop the live display.

Stop the live display while keeping the current display visible in the terminal. Alias for detach() with skipline=False. :rtype: None

Note

Calling stop() or detach() is necessary to print something at the end of an epoch. Otherwise, the print will be shown above the live display.

start()

Set the start time of the training (already called at initialization).

Return type:

None

reset()

Reset the logger as at initialization.

Return type:

None

get_vals(*, average=None)

Get the last values called with log, optionally averaged.

Parameters:

average (List[str], optional) – List of keys to return average. Support regex expressions. None for no averaged value. By default None.

Returns:

Last values called with log (optionally averaged).

Return type:

Dict[str, VarType]

logml.time_utils

Utilities for time data.

sec_to_timestr(sec)

Return a string corresponding to the time given in seconds.

Return type:

str

get_time_range(current_time, start_glob, start_epoch, current_epoch, current_batch, n_epochs, n_batches)

Get delta and eta times for global and epoch.

Parameters:
  • current_time (float) – Current time in seconds.

  • start_glob (float) – Global starting time in seconds.

  • start_epoch (float) – Epoch starting time in seconds. None if not available.

  • current_epoch (int, optional) – Current epoch (starting at 1). None if not available.

  • current_batch (int, optional) – Current batch (starting at 1). None if not available.

  • n_epochs (int, optional) – Number of epochs. None if not available.

  • n_batches (Optional[int], optional) – Number of batches per epoch. None if not available. By default None.

Raises:

ValueError – If current_batch, current_epoch, n_epochs or n_batch are 0.

Return type:

Tuple[float, float, Optional[float], Optional[float]]

Returns:

  • delta_glob (float) – Delta time since global start in seconds.

  • delta_epoch (float) – Delta time since epoch start in seconds. None if unavailable.

  • eta_glob (Optional[float]) – Estimated time until global end in seconds. None if unavailable.

  • eta_epoch (Optional[float]) – Estimated time until epoch end in seconds. None if unavailable.