Skip to main content

Logging Utility for ML Experiments

Project description

CircleCI License: MIT

ml-logger

Logging utility for ML experiments

Installation

  • git clone git@github.com:shagunsodhani/ml-logger.git
  • cd ml-logger
  • pip install .

Alternatively, pip install "git+https://git@github.com/shagunsodhani/ml-logger.git@master#egg=ml_logger"

If you want to use tensorboardX or Wandb logger, use pip install ".[all]" or pip install "git+https://git@github.com/shagunsodhani/ml-logger.git@master#egg=ml_logger[all]".

Use

  • Make a logbook_config:

    from ml_logger import logbook as ml_logbook
    logbook_config = ml_logbook.make_config(
        logger_file_path = <path to write logs>,
        wandb_config = <wandb config or None>,
        tensorboard_config = <tensorboard config or None>,
        mlflow_config = <mlflow config or None>)
    

    The API for make_config can be accessed here.

  • Make a LogBook instance:

    logbook = ml_logbook.LogBook(config = logbook_config)
    
  • Use the logbook instance:

    log = {
        "epoch": 1,
        "loss": 0.1,
        "accuracy": 0.2
    }
    logbook.write_metric_log(log)
    

    The API for write_metric_log can be accessed here.

Note

  • If you are writing to wandb, the log must have a key called step. If your log already captures the step but as a different key (say epoch), you can pass the wandb_key_map argument (set as {epoch: step}). For more details, refer the documentation here.

  • If you are writing to mlflow, the log must have a key called step. If your log already captures the step but as a different key (say epoch), you can pass the mlflow_key_map argument (set as {epoch: step}). For more details, refer the documentation here.

  • If you are writing to tensorboard, the log must have a key called main_tag or tag which acts as the data Identifier and another key called global_step. These keys are described here. If your log already captures these values but as different key (say mode for main_tag and epoch for global_step), you can pass the tensorboard_key_map argument (set as {mode: main_tag, epoch: global_step}). For more details, refer the documentation here.

  • TensorboardX sometimes throws an error when logging metrics whose value is of type string. Currently, such metrics are not logged.

Documentation

https://shagunsodhani.github.io/ml-logger

Dev Setup

  • pip install -e .[dev]
  • Install pre-commit hooks pre-commit install
  • The code is linted using:
    • black
    • flake8
    • mypy
  • CI currently only checks for linting.
  • Lint tests can be run locally using nox -s lint

Acknowledgements

  • Config for circleci, pre-commit, mypy etc are borrowed/modified from Hydra

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mllogger-0.3rc5.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

mllogger-0.3rc5-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file mllogger-0.3rc5.tar.gz.

File metadata

  • Download URL: mllogger-0.3rc5.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0.post20200119 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.8

File hashes

Hashes for mllogger-0.3rc5.tar.gz
Algorithm Hash digest
SHA256 13ecb9c73a22c7983a2d3a3a8a016cc619a2f8fedab81bc1a922f5cee0880499
MD5 445e9fbcd13d1214bf3f9d69d90ce3cc
BLAKE2b-256 ca8eb149c2c841c8467214873c46731d34f3b67a02f7b11e920c314a7a283d0c

See more details on using hashes here.

File details

Details for the file mllogger-0.3rc5-py3-none-any.whl.

File metadata

  • Download URL: mllogger-0.3rc5-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0.post20200119 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.8

File hashes

Hashes for mllogger-0.3rc5-py3-none-any.whl
Algorithm Hash digest
SHA256 9c610ba3471c9b784978d4d8b4a93164002ff5ebaed19782c24f326b3fa95395
MD5 61c176d40dc19cbd55eae77f309fa305
BLAKE2b-256 93d905e3c93d13be2a298923aa222781fbd660b1a2b849de2946cf5feda87874

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page