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.2.0.tar.gz (122.6 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.2.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file xpm_mlboard-0.2.0.tar.gz.

File metadata

  • Download URL: xpm_mlboard-0.2.0.tar.gz
  • Upload date:
  • Size: 122.6 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.2.0.tar.gz
Algorithm Hash digest
SHA256 53dc5fec447f4408584ed50268e0f5898c8dc45fcdd2f26216c28bd4c3b8c1b2
MD5 d18caac89c018499c6b25777487c9481
BLAKE2b-256 c4e19b7c0f43d9968cb0d2f9021414b3bde764e00124d348e1ca651a78dc4146

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpm_mlboard-0.2.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.2.0-py3-none-any.whl.

File metadata

  • Download URL: xpm_mlboard-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc2e086b6a010449dde2732145903b78d3e075302019c80ccf2bd36d72f543e4
MD5 647769421e444b623c93b002531bbfc5
BLAKE2b-256 cc638be424961fc71fc06db71249c8f83bf40ec1d6e3ceb5aa26185975c9bae9

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpm_mlboard-0.2.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