Skip to main content

visin

CI PyPI Python License: MIT

Send training runs to Visin: epochs, test results, benchmarks, prediction frames and configs. Read them back for analysis.

pip install visin
import visin

with visin.init("unet baseline", project="road-seg") as run:
    for epoch in range(1, 21):
        train_loss, val_loss, val_iou = train_one_epoch()
        run.log_epoch(epoch, train={"loss": train_loss}, val={"loss": val_loss, "mean_iou": val_iou})

Point it at your Visin with two environment variables. Without them, the same script runs and reports nothing.

export VISIN_URL=https://vision-api.visin.eu
export VISIN_TOKEN=…            # a pipeline key, from the project's Settings → Pipeline keys
visin check --write             # confirm this machine can report

What it does for you

  • Never stops your training. Reports go out from a background thread, and failures are logged, never raised.
  • Retries safely. Epochs and test results carry their own ids, so a retried request is never stored twice.
  • Survives the network. Reports wait on disk while Visin is unreachable, and are sent when it answers. With VISIN_MODE=offline, a compute node with no route to Visin keeps everything for visin sync.
  • Keeps crashed runs. A run that crashes, or that the scheduler terminates, still sends its epochs and is marked failed.
  • Takes metrics as they are. NumPy and PyTorch scalars are converted, and NaN becomes a gap in the chart.
  • Reports once in distributed jobs. Only rank zero reports.

More than epochs

run.log_test_results(12, {"day": {"car": {"iou": 0.74}}, "night": {"car": {"iou": 0.61}}})
run.log_benchmark({"device": "cuda", "batch_size": 1, "fps": 119.0})  # machine details filled in
run.upload_visualization(12, "renders/overlay_0001.png", kind="overlay")
run.log_config(args)  # argparse, dataclass, pydantic, Hydra…

Rank checkpoints

checkpoint = visin.local_checkpoint("checkpoints/epoch_40.pth")
evaluation = visin.evaluate(
    results,
    suite="road-test@1",
    checkpoint=checkpoint,
    sample_counts={"day": 1200, "night": 800},
    project="road-seg",
)
print(evaluation.verdict)  # eligible, or incomplete: missing-condition(night)

Visin judges each result against a written-down suite and says whether it can be ranked, and why not. visin leaderboard road-test@1 shows the ranking and where each model is weakest. See evaluating models.

Frameworks

from visin.integrations.lightning import VisinCallback  # or visin.integrations.keras

trainer = L.Trainer(callbacks=[VisinCallback(name="segformer b2", project="road-seg")])

Reading runs back

api = visin.Api()
for run in api.trainings(project="road-seg", status="completed"):
    frame = api.epochs_frame(run)  # pip install 'visin[pandas]'

Datasets

Public datasets on Visin need no account or token. They can be listed and downloaded, once, into VISIN_DATA_DIR:

export VISIN_DATASET_URL=https://dataset-api.visin.eu
visin datasets
visin download zod     # resumes if interrupted; prints the folder

visin.Datasets does the same from Python.

Documentation

visin-platform.github.io/visin-py has the getting-started guide, guides to offline use and each framework, and the API reference.

Contributing

See CONTRIBUTING.md. In short: make install, then make check before a pull request. Changes are listed in the changelog.

License

MIT

Metadata

Release files for visin 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for visin 0.9.0
File Size Uploaded
visin-0.9.0.tar.gz 230.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for visin 0.9.0
File Interpreter ABI Platform
visin-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 351.9 kB

Release files / visin-0.9.0.tar.gz

Download URL visin-0.9.0.tar.gz
Size 230.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e30d223006e78877220a150133dad8d8edb0b8e7985db3b4d96ac2b115f01e1a
BLAKE2b-256 checksum
How to use checksums
b10a41690c6503812f14a3e7aa79811200fa95581f596cf03366aa4baf456c5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / visin-0.9.0-py3-none-any.whl

Download URL visin-0.9.0-py3-none-any.whl
Size 121.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0eb7c86678ffb5a7d61ffc18c3545af8e4d915a3d797159e688e69639d46ab94
BLAKE2b-256 checksum
How to use checksums
40fa76fb7abff37cc03fcf707b7b802a571bee02f81ae932e5d2fd7d349698dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page