Lightweight experimaestro services to monitor ML learning curves (TensorBoard, ...)
Project description
xpm-mlboard
Lightweight experimaestro services to monitor ML learning curves during experiments. It launches a visualization backend and aggregates the run directories produced by your tasks so you can watch training live.
It is intentionally torch-free: the package only depends on experimaestro, with
the heavier visualization tools pulled in as optional extras.
Backends
- TensorBoard (
xpm_mlboard.TensorboardService) — runstensorboardas an isolated subprocess on a free port and symlinks each task's tagged run directory into a singleruns/folder.
The xpm_mlboard.MonitoringService / xpm_mlboard.SymlinkMonitoringService
base classes make it straightforward to add other backends (e.g. Weights & Biases).
Installation
As a project dependency (with the TensorBoard backend):
uv add "xpm-mlboard[tensorboard]"
Adding the plugin to experimaestro installed as a uv tool
If you run experimaestro as a uv tool,
inject this plugin into the tool's environment with --with (re-run the install to
add the plugin to the existing tool):
uv tool install experimaestro --with "xpm-mlboard[tensorboard]"
Usage
Add the service to your experiment and register each task's run directory:
from xpm_mlboard import TensorboardService
# `xp` is the experimaestro experiment
service = xp.add_service(TensorboardService(xp.resultspath / "runs"))
# When you submit a task, register its run directory so it shows up:
task = MyLearningTask(...).submit()
service.add(task, task.logpath)
Wiring the service into an experiment is typically done through a project-specific
experiment helper (for instance xpm_torch.experiments.LearningExperimentHelper,
which exposes helper.monitoring_service).
Custom backends
Subclass SymlinkMonitoringService (filesystem-based backends) or
MonitoringService (anything else) and implement the backend-specific bits:
from xpm_mlboard import SymlinkMonitoringService
from experimaestro.scheduler.services import ProcessWebService
class MyBackendService(SymlinkMonitoringService, ProcessWebService):
id = "mybackend"
def description(self):
return "My backend service"
def _build_command(self):
...
def _wait_for_ready(self):
...
License
GPL-3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xpm_mlboard-0.1.0.tar.gz.
File metadata
- Download URL: xpm_mlboard-0.1.0.tar.gz
- Upload date:
- Size: 122.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7000a00d4a7cee051c936ebb37b690f2a83d7b248c0193b661591d74445a1fdf
|
|
| MD5 |
2f8fbfd3a6a09271c0848068ba128f93
|
|
| BLAKE2b-256 |
2330f10fe506f228ea02c68f4673dbbbcaad6e12d40edc7a4446264d6e711655
|
Provenance
The following attestation bundles were made for xpm_mlboard-0.1.0.tar.gz:
Publisher:
python-publish.yml on experimaestro/xpm-mlboard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpm_mlboard-0.1.0.tar.gz -
Subject digest:
7000a00d4a7cee051c936ebb37b690f2a83d7b248c0193b661591d74445a1fdf - Sigstore transparency entry: 1892902362
- Sigstore integration time:
-
Permalink:
experimaestro/xpm-mlboard@d84ccb91bae105559dc70d0759cb2a2bf9f6f0e6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/experimaestro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@d84ccb91bae105559dc70d0759cb2a2bf9f6f0e6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file xpm_mlboard-0.1.0-py3-none-any.whl.
File metadata
- Download URL: xpm_mlboard-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7664204c21a4315e3340a9aa2b80a5384ffab04c2687fef25ad3fff87d930aff
|
|
| MD5 |
fab30279dd6c2d81634fbe771113088d
|
|
| BLAKE2b-256 |
45f05f241402aa0720b4dd3c4f89a9b6c8c04f496bcf9856bddda43acdddfc4d
|
Provenance
The following attestation bundles were made for xpm_mlboard-0.1.0-py3-none-any.whl:
Publisher:
python-publish.yml on experimaestro/xpm-mlboard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpm_mlboard-0.1.0-py3-none-any.whl -
Subject digest:
7664204c21a4315e3340a9aa2b80a5384ffab04c2687fef25ad3fff87d930aff - Sigstore transparency entry: 1892902475
- Sigstore integration time:
-
Permalink:
experimaestro/xpm-mlboard@d84ccb91bae105559dc70d0759cb2a2bf9f6f0e6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/experimaestro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@d84ccb91bae105559dc70d0759cb2a2bf9f6f0e6 -
Trigger Event:
release
-
Statement type: