Live loss plots for the Jupyter-impatient
A lightweight callback that draws training curves in real time so you don't babysit models blindfolded.

What it does
livelossplot is a Python package that streams live training metrics—loss, accuracy, whatever you log—into updating plots inside Jupyter Notebook. It wraps common deep-learning frameworks (Keras, PyTorch via Ignite/Poutyne, and others) with drop-in callbacks, plus a bare PlotLosses API for anything else.
The interesting bit
The README openly admits TensorBoard exists and is “serious”; this tool deliberately targets the opposite use case—quick experiments, teaching, and small models where spinning up a whole logging server feels like bringing a forklift to move a coffee mug. It also outputs to Bokeh or plain Matplotlib, and can mirror to TensorBoard if you later change your mind.
Key highlights
- Drop-in callbacks:
PlotLossesKeras,PlotLossesIgnite,PlotLossesPoutyne, plus a genericPlotLossesfor manual updates - Multiple backends: Matplotlib, Bokeh, or extrema-printed to stdout; can combine outputs (e.g.
MatplotlibPlot()+TensorboardLogger()) - Python 3.10+, installable via
piporuv, with ephemeral-script support viauv run --with livelossplot - Colab-ready examples for every framework; started as a popular gist and grew into a maintained package
- Openly solicits small contributions—docstrings count
Caveats
- The project itself positions itself as not for production-scale training; the README nudges serious users toward TensorBoard
- Some output modules (Bokeh especially) require opening notebooks in Colab to see plots, per the README note
Verdict
Grab this if you teach deep learning, prototype in notebooks, or just want immediate visual feedback without infrastructure. Skip it if you’re already running TensorBoard in a persistent training pipeline and don’t look back.