Lightweight and lazy experiment logging
Project description
Lightweight, lazy experiment logging
lazyscribe
is a lightweight package for model experiment logging. It creates a single JSON
file per project, and an experiment is only added to the file when code finishes (errors won't
result in partially finished experiments in your project log).
lazyscribe
also has functionality to allow for multiple people to work on a single project.
You can merge projects together and update the list of experiments to create a single, authoritative
view of all executed experiments.
Installation
$ python -m pip install lazyscribe
Basic Usage
The basic usage involves instantiating a Project
and using the context manager to log
an experiment:
import json
from lazyscribe import Project
project = Project(fpath="project.json")
with project.log(name="My experiment") as exp:
exp.log_metric("auroc", 0.5)
exp.log_parameter("algorithm", "lightgbm")
You've created an experiment! You can view the experimental data by using list
:
print(json.dumps(list(project), indent=4))
[
{
"name": "My experiment",
"author": "<AUTHOR>",
"last_updated_by": "<AUTHOR>",
"metrics": {
"auroc": 0.5
},
"parameters": {
"algorithm": "lightgbm"
},
"created_at": "<CREATED_AT>",
"last_updated": "<LAST_UPDATED>",
"dependencies": [],
"short_slug": "my-experiment",
"slug": "my-experiment-<CREATED_AT>",
"tests": [],
"artifacts": []
}
]
Once you've finished, save the project to project.json
:
project.save()
Later on, you can read the project back in read-only mode ("r"), append mode ("a"), or editable mode ("w+"):
project = Project("project.json", mode="r")
with project.log(name="New experiment") as exp: # Raises a RuntimeError
...
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for lazyscribe-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c35af6888c0d3653987c2a10a816a1293b21039377489e3c405cfc41fd1fb3b |
|
MD5 | 1f0ef99f5fc1f08f87dc52c9e2f120fd |
|
BLAKE2b-256 | 3c40aeebce1aefdb2bcee91f722a42e9dc13be05231c733cd1a78d266d0adde0 |