Training Run Review
Review a training run and hand someone the link. Import metrics.csv — one row per epoch, one column per metric — and the loss and accuracy curves bind to it and fill in with nothing to press. Import predictions.csv with a truth column and a score, then press Rank for an ROC curve with its chance diagonal and a marked operating point, a precision-recall curve with its prevalence baseline, and a scorecard: AUC, average precision, the chosen threshold and the precision and recall you actually get there. Press Calibrate for a reliability diagram against the perfect-calibration diagonal, plus Brier, ECE and log loss — because a model can rank well and still be so overconfident that no threshold you would plausibly set removes its errors, which is exactly the case accuracy alone cannot tell you about. Sweep the score threshold to see which predictions survive and what the cut costs. Zoom the epoch axis to the region where validation loss turns up. Reshape a long export (one row per run, step and metric, which is what MLflow and Weights & Biases give you) into the one-column-per-metric shape a curve binds to. Built for the half of a deep-learning project that happens after the run finishes and someone asks how it went. LIMITS, STATED RATHER THAN DISCOVERED: no model training and no inference happen here — that stays in PyTorch, TensorFlow or your training harness, and this reads the numbers and predictions it already wrote. The confusion matrix and checkpoint-comparison panels ship EMPTY and stay empty: computing one needs a hard-label scoring action that is not in the engine yet, so until that lands a caller has to supply labels and a matrix through metrics.setConfusion, and comparison rows through metrics.setCompare. Note setCompare treats every row as higher-is-better unless told otherwise, so a loss-like row needs higherBetter: false or the best-value highlight lands on the worst checkpoint. No tfevents reader: TensorBoard event files are protobuf, and TensorBoard itself exports CSV — use that, or tbparse. No images, so COCO and YOLO detection labels have nothing to be drawn over and are not read. No .npy — write embeddings out with to_csv and they load as a table. The curves bind their x axis to a column called `epoch`, and MLflow and Weights & Biases both call it `step`, so a reshaped export needs one Rename column press before a curve fills. Charts bind to a dataset by NAME, which comes from the filename, so metrics.csv and predictions.csv wire themselves and anything else needs one Rename press; worse, a name that resolves to nothing binds to whichever dataset came in last rather than erroring, so check the Datasets list if a curve looks wrong. Axes are linear only: there is no log-y, which is how loss curves are conventionally read. Calibration needs probabilities in [0,1] — a logit column is refused with a message rather than plotted. The whole run lives in the track state, which is capped at 1 MiB — roughly 20,000 prediction rows at four columns — so score a stratified sample rather than a 500,000-row test set. Nothing streams: this reads files you already have. Drop-onto-canvas is not available, because that needs the 3D importer and would drag a WebGL canvas into a pure-2D dashboard; use the Import button or Track Studio.
Supported file formats: CSV, TSV