RunManifest

RunManifest(
    falconage_version=__version__,
    registry_version=REGISTRY_VERSION,
    started_utc=(lambda: datetime.now(timezone.utc).isoformat())(),
    finished_utc=None,
    device='cpu',
    dtype='float64',
    backend='numpy',
    device_requested='cpu',
    python=(lambda: sys.version.split()[0])(),
    platform=platform.platform(),
    caller='python',
    config=dict(),
    inputs=list(),
    weights=dict(),
    compute=dict(),
    coverage=dict(),
    warnings=list(),
    skipped=dict(),
    preanalytical=dict(),
)

Provenance for one scoring run.

Methods

Name Description
compute_summary One line naming every device and precision the run used.
record_compute Note what one clock actually computed in, and refresh the summary.
refresh_compute_summary Re-derive the three scalar fields from compute.

compute_summary

RunManifest.compute_summary()

One line naming every device and precision the run used.

"torch:cuda/float64" when the run was uniform, and "torch:cuda/float64 (20 clocks), numpy:cpu/float64 (3)" when it was not. The scalar fields alone cannot say the second thing, and printing "mixed:mixed/mixed" in a report would be worse than saying nothing.

record_compute

RunManifest.record_compute(clock_id, spec)

Note what one clock actually computed in, and refresh the summary.

Called per clock by :func:falconage.score.score with the spec the model reported through :func:falconage.models.effective_spec, which is not always the spec the run requested.

refresh_compute_summary

RunManifest.refresh_compute_summary()

Re-derive the three scalar fields from compute.

Public because :func:falconage.score.combine fills compute from several manifests at once rather than one clock at a time.