Training Progress Visualizer

Plot loss, accuracy, and learning rate curves for any training run. Paste CSV epoch data or use the built-in demo. Overfitting is flagged automatically.

Built by Michael Lip

Paste CSV — header: epoch,loss,val_loss,accuracy,val_accuracy,lr (omit columns you don't have; only epoch and at least one metric required)

Train Loss
Val Loss
Train Acc
Val Acc
LR (×1000)
Epochs: Best Val Loss: Best Val Acc: Min LR: Max LR: Zoom:

Frequently Asked Questions

What CSV format does this tool accept?

The first row must be a header. Required column: epoch. Optional columns (any combination): loss, val_loss, accuracy, val_accuracy, lr. Columns in any order. Extra columns are ignored. Values must be numeric.

How is overfitting detected?

When val_loss and loss are both present, the tool computes the ratio val_loss / loss at each epoch. When this ratio exceeds the configured threshold (default 1.15) for 3 or more consecutive epochs, an overfitting annotation is drawn on the chart at the first divergence point.

What does the smoothing parameter do?

Smoothing applies exponential moving average (EMA) to each series before plotting. A value of 0 means no smoothing. A value of 0.9 applies heavy smoothing. This matches the smoothing slider in TensorBoard.

How do I zoom and pan the chart?

Scroll the mouse wheel over the chart to zoom in/out along the epoch axis. Click and drag left/right to pan. Press Reset Zoom or use the button to return to full view.

What LR schedules are available?

If your CSV includes a lr column the actual values are plotted. The dropdown overlays a synthetic schedule on top: step decay (halve every 10 epochs), cosine annealing, or linear warmup followed by cosine decay. This is useful for planning before a run.

How It Works

All rendering uses the browser's native Canvas 2D API — no external charting library is loaded. The chart engine handles multi-axis scaling (loss/accuracy on the left, LR on the right), zoom/pan state, and PNG export via canvas.toDataURL().

Overfitting detection scans for sustained val/train divergence above your chosen threshold. The annotation marker is drawn directly on the canvas and included in exported images.

Related Tools

Privacy

All data stays in your browser. No CSV rows are sent anywhere. Source is on GitHub.

Contact

EpochPilot is maintained by Michael Lip. Questions: [email protected].

Learn about timestamp edge cases in Timestamp Bugs You'll Hit — 15 real-world bugs documented