Live Streamlit dashboard for kt-masterlog master CSV files. Companion to kt-masterlog.
Project description
kt-masterviz
Live Streamlit dashboard for kt-masterlog master CSV files. Companion package — separate install so you don't pay the dashboard's dependency footprint when you only want the logger.
What it does
Point kt-masterviz at any master CSV produced by kt-masterlog (or any CSV that follows the schema: trial_id, epoch, hyperparameter columns, metric columns) and get a live Streamlit dashboard showing:
- Trial summary — one row per trial, sorted by the objective metric, with hyperparameter values inline.
- Training curves — per-trial loss/accuracy lines, switchable across any detected metric.
- Raw data — the full DataFrame, for ad-hoc filtering.
The reader is file-safe: tolerant of partial last rows from a writer mid-append, so you can launch the dashboard against a CSV that's still being written by a running tuner.
Install
With pip:
pip install kt-masterviz
With uv:
uv add kt-masterviz
Usage
kt-masterviz path/to/master_log.csv
Opens the dashboard at http://localhost:8501. The page auto-refreshes every few seconds (configurable in the sidebar) so trials show up as the tuner writes them.
The CSV doesn't need to exist when you launch — the dashboard polls and renders a waiting state until the writer produces the first row. Useful for starting the viewer before kicking off a long sweep.
Programmatic use
If you'd rather build your own viewer, the loader is the reusable bit:
from kt_masterviz import load_master_csv, detect_hyperparameter_columns
df = load_master_csv("runs/sweep_master_log.csv")
hp_cols = detect_hyperparameter_columns(df)
# ... your own pandas / plotly / altair code
CSV schema
kt-masterviz works with any CSV that has:
| Column | Required | Purpose |
|---|---|---|
trial_id |
yes | Identifies a single tuning trial |
epoch |
yes | Epoch number within the trial |
loss / val_loss / accuracy / etc. |
no (auto-detected) | Training/validation metrics |
| anything else | no | Treated as a hyperparameter or extra field |
Detection of "metric vs hyperparameter" is heuristic — a column counts as a metric if its lowercased name contains any of: loss, accuracy, acc, auc, mae, mse, rmse, f1, precision, recall, iou, dice. Everything else is treated as a hyperparameter or static field (and shown in the trial summary).
Requirements
- Python 3.12 (tested; 3.13+ may work but is not yet verified)
- pandas ≥ 2.0
- streamlit ≥ 1.28
No dependency on kt-masterlog itself — kt-masterviz reads its file format but doesn't import its code.
License
MIT.
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 kt_masterviz-0.1.0.tar.gz.
File metadata
- Download URL: kt_masterviz-0.1.0.tar.gz
- Upload date:
- Size: 96.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d424a6c7aae2c2c318eb806efbd9ecafd13826319f1f4196a6a81e975f807719
|
|
| MD5 |
1a3190ef59804ec5230505d2df4994a9
|
|
| BLAKE2b-256 |
679ddf5d4d73a4e32f8b88cf0d8c193f7e02bebcb20e024e0ff127400f4c0192
|
File details
Details for the file kt_masterviz-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kt_masterviz-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0da7230bebaaf5fb845f2a2fe584525d79aeca1ebf1d9e3d6cf55c0072f500a9
|
|
| MD5 |
c5d94ba869f3987d8b6ab887d139e6d1
|
|
| BLAKE2b-256 |
0624d8a3ae0d6520ac36f8ee79fee2520b012837bec1027b9f65627cf6c61df6
|