Skip to main content

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) — runs tensorboard as an isolated subprocess on a free port and symlinks each task's tagged run directory into a single runs/ 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


Download files

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

Source Distribution

xpm_mlboard-0.1.0.tar.gz (122.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xpm_mlboard-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

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

Hashes for xpm_mlboard-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7000a00d4a7cee051c936ebb37b690f2a83d7b248c0193b661591d74445a1fdf
MD5 2f8fbfd3a6a09271c0848068ba128f93
BLAKE2b-256 2330f10fe506f228ea02c68f4673dbbbcaad6e12d40edc7a4446264d6e711655

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpm_mlboard-0.1.0.tar.gz:

Publisher: python-publish.yml on experimaestro/xpm-mlboard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for xpm_mlboard-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7664204c21a4315e3340a9aa2b80a5384ffab04c2687fef25ad3fff87d930aff
MD5 fab30279dd6c2d81634fbe771113088d
BLAKE2b-256 45f05f241402aa0720b4dd3c4f89a9b6c8c04f496bcf9856bddda43acdddfc4d

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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