Metadata-Version: 2.5
Name: runyard
Version: 0.6.0
Summary: Python client for runyard, a lightweight self-hosted training tracker
Project-URL: Homepage, https://github.com/cobanov/runyard
License-Expression: Apache-2.0
Requires-Python: >=3.9
Provides-Extra: dev
Requires-Dist: numpy; extra == 'dev'
Requires-Dist: pillow; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Provides-Extra: images
Requires-Dist: numpy; extra == 'images'
Requires-Dist: pillow; extra == 'images'
Provides-Extra: system
Requires-Dist: nvidia-ml-py; extra == 'system'
Requires-Dist: psutil; extra == 'system'
Provides-Extra: tensorboard
Requires-Dist: tensorboard; extra == 'tensorboard'
Provides-Extra: video
Requires-Dist: imageio; extra == 'video'
Requires-Dist: imageio-ffmpeg; extra == 'video'
Description-Content-Type: text/markdown

# runyard (Python client)

See the [main README](https://github.com/cobanov/runyard).

Optional extras: `images` (numpy, Pillow), `system` (GPU, CPU and RAM usage), `video` (imageio-ffmpeg: frames
become an H.264 mp4 instead of a GIF) and `tensorboard` (for `runyard watch DIR`, which sends TensorBoard event
files: one run per directory, `--once` to import and exit). `runyard --help` lists the commands.

## Framework adapters

`runyard.integrations.<module>` imports its framework, which you install yourself. Keyword arguments other than
`project` and `name` go to `runyard.init` (`tags`, `notes`, `system`, ...).

| Module | One line | Run, config, metrics |
|---|---|---|
| `hf` | `Trainer(..., callbacks=[RunyardCallback()])` | per training; TrainingArguments and model config; `train/`, `eval/` by global step |
| `accelerate` | `Accelerator(log_with=[RunyardTracker(project=...)])` | per `init_trackers`; its config; `accelerator.log()` |
| `lightning` | `Trainer(logger=RunyardLogger(project=...))` | per Trainer call; hyperparameters; logged metrics by global step |
| `keras` | `model.fit(..., callbacks=[RunyardCallback(project=...)])` | per fit; fit params and parameter count; `train/`, `val/` by epoch, `batch/` with `log_every_n_batches` |
| `xgboost` | `xgb.train(..., callbacks=[RunyardCallback(project=...)])` | per training; booster training params; `<eval name>/<metric>` by iteration |
| `lightgbm` | `lgb.train(..., callbacks=[runyard_callback(project=...)])` | per training; params; `<valid name>/<metric>` by iteration |
| `sklearn` | `autolog(project=...)`; `autolog(disable=True)` undoes it | per outer `fit()`, named after the class; `get_params(deep=False)`; `fit_seconds`, `train/score` |
| `torchtune` | `metric_logger: {_component_: runyard.integrations.torchtune.RunyardLogger, project: ...}` | per recipe; resolved recipe config; the recipe's metrics by step |

On macOS, xgboost and lightgbm need `brew install libomp`, and they crash if `torch` was imported first: import them
before torch.
