Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.2%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Logging utility

Basic Info
Statistics
  • Stars: 8
  • Watchers: 2
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Created about 5 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Citation

README.md

CircleCI PyPI - License PyPI - Python Version Code style: black DOI

xplogger

Logging utility for ML experiments

Why

People use different tools for logging experimental results - Tensorboard, Wandb etc to name a few. Working with different collaborators, I will have to switch my logging tool with each new project. So I made this simple tool that provides a common interface to logging results to different loggers.

Installation

  • pip install "xplogger[all]"

If you want to use only the filesystem logger, use pip install "xplogger"

Install from source

  • git clone git@github.com:shagunsodhani/xplogger.git
  • cd xplogger
  • pip install ".[all]"

Alternatively, pip install "git+https://git@github.com/shagunsodhani/xplogger.git@master#egg=xplogger[all]"

If you want to use only the filesystem logger, use pip install . or pip install "git+https://git@github.com/shagunsodhani/xplogger.git@master#egg=xplogger".

Documentation

https://shagunsodhani.github.io/xplogger

Use

  • Make a logbook_config:

    import xplogger.logbook logbook_config = xplogger.logbook.make_config( logger_dir = <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 = xplogger.logbook.LogBook(config = logbook_config)

  • Use the logbook instance:

    log = { "epoch": 1, "loss": 0.1, "accuracy": 0.2 } logbook.write_metric(log) The API for write_metric 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.

Dev Setup

  • pip install -e ".[dev]"
  • Install pre-commit hooks pre-commit install
  • The code is linted using:
    • black
    • flake8
    • mypy
    • isort
  • Tests can be run locally using nox

Acknowledgements

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

Owner

  • Name: Shagun Sodhani
  • Login: shagunsodhani
  • Kind: user
  • Location: Virtual
  • Company: @facebook

@FacebookResearch. Previously @mila-iqia, @MicrosoftResearch, @AdobeResearch, @IITRoorkee, @gradientpub.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Sodhani"
  given-names: "Shagun"
  orcid: "https://orcid.org/0000-0003-2994-8906"
title: "xplogger: Logging utility for ML experiments"
version: 0.9.0
doi: 10.5281/zenodo.5980041
date-released: 2022-02-05
url: "https://github.com/shagunsodhani/xplogger"

GitHub Events

Total
Last Year

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 94
  • Total Committers: 2
  • Avg Commits per committer: 47.0
  • Development Distribution Score (DDS): 0.085
Top Committers
Name Email Commits
Shagun Sodhani s****i@f****m 86
Shagun Sodhani 1****i@u****m 8
Committer Domains (Top 20 + Academic)
fb.com: 1

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 6
  • Total pull requests: 14
  • Average time to close issues: 23 days
  • Average time to close pull requests: 16 days
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.14
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • shagunsodhani (6)
Pull Request Authors
  • shagunsodhani (14)
Top Labels
Issue Labels
feature (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 62 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 7
  • Total maintainers: 1
pypi.org: xplogger

Logging Utility for ML Experiments

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 62 Last month
Rankings
Dependent packages count: 9.8%
Stargazers count: 18.5%
Dependent repos count: 21.9%
Average: 26.2%
Forks count: 29.9%
Downloads: 51.0%
Maintainers (1)
Last synced: 8 months ago

Dependencies

requirements/all.txt pypi
  • filelock >=3.4.2
  • mlflow >=1.12.1
  • pymongo >=3.11.1
  • tensorboardX >=2.1
  • wandb >=0.10.11
requirements/dev.txt pypi
  • black >=22.1.0
  • flake8 >=4.0.1
  • flake8-annotations >=2.7.0
  • flake8-bandit >=2.1.2
  • flake8-bugbear >=22.1.11
  • flake8-comprehensions >=3.8.0
  • flake8-docstrings >=1.5.0
  • isort >=5.10.1
  • mypy >=0.931
  • nox >=2022.1.7
  • pre-commit >=2.17.0
  • pytest >=7.0.0
  • sphinx >=4.3.0
  • sphinx-autodoc-annotation >=1.0
  • sphinx-rtd-theme >=1.0.0
  • sphinxcontrib-napoleon >=0.7
  • twine >=3.8.0
  • typing-extensions >=4.1.0
requirements/filesystem.txt pypi
  • numpy >=1.20.0
  • pandas >=1.0.0
  • pyarrow >=2.0.0
xplogger/experiment_manager/requirements.txt pypi
  • bokeh ==2.3.3
  • pandas-bokeh ==0.5.5
setup.py pypi