livelossplot


Namelivelossplot JSON
Version 0.5.5 PyPI version JSON
download
home_pagehttps://github.com/stared/livelossplot
SummaryLive training loss plot in Jupyter Notebook for Keras, PyTorch and others.
upload_time2022-04-04 16:14:10
maintainer
docs_urlNone
authorPiotr Migdał
requires_python>=3.7
licenseMIT
keywords keras pytorch plot chart deep-learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # livelossplot

[![livelossplot version - PyPI](https://img.shields.io/pypi/v/livelossplot)](https://pypi.org/project/livelossplot/)
![PyPI status](https://img.shields.io/pypi/status/livelossplot.svg)
![MIT license - PyPI](https://img.shields.io/pypi/l/livelossplot.svg)
![Python version - PyPI](https://img.shields.io/pypi/pyversions/livelossplot.svg)
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/stared/livelossplot/Python%20package)](https://github.com/stared/livelossplot/actions)
[![Downloads](http://pepy.tech/badge/livelossplot)](https://pepy.tech/project/livelossplot)
[![Twitter @pmigdal](https://img.shields.io/twitter/follow/pmigdal)](https://twitter.com/pmigdal)

Don't train deep learning models blindfolded! Be impatient and look at each epoch of your training!

([RECENT CHANGES](CHANGELOG.md), [EXAMPLES IN COLAB](https://colab.research.google.com/github/stared/livelossplot), [API LOOKUP](http://p.migdal.pl/livelossplot/), [CODE](https://github.com/stared/livelossplot))

A live training loss plot in [Jupyter Notebook](http://jupyter.org/) for [Keras](https://keras.io/), [PyTorch](http://pytorch.org/) and other frameworks. An open-source Python package by [Piotr Migdał](https://p.migdal.pl/), [Bartłomiej Olechno](https://github.com/Bartolo1024/) and [others](https://github.com/stared/livelossplot/graphs/contributors). **Open for collaboration!** (Some tasks are as simple as writing code docstrings, so - no excuses! :))

```python
from livelossplot import PlotLossesKeras

model.fit(X_train, Y_train,
          epochs=10,
          validation_data=(X_test, Y_test),
          callbacks=[PlotLossesKeras()],
          verbose=0)
```

![Animated fig for livelossplot tracking log-loss and accuracy](https://raw.githubusercontent.com/stared/livelossplot/master/livelossplot.gif)

- (The most FA)Q: Why not TensorBoard?
- A: Jupyter Notebook compatibility (for exploration and teaching). The simplicity of use.

## Installation

To install [this version from PyPI](https://pypi.org/project/livelossplot/), type:

```bash
pip install livelossplot
```

To get the newest one from this repo (note that we are in the alpha stage, so there may be frequent updates), type:

```bash
pip install git+git://github.com/stared/livelossplot.git
```

## Examples

Look at notebook files with full working [examples](https://github.com/stared/livelossplot/blob/master/examples/):

- [keras.ipynb](https://github.com/stared/livelossplot/blob/master/examples/keras.ipynb) - a Keras callback
- [minimal.ipynb](https://github.com/stared/livelossplot/blob/master/examples/minimal.ipynb) - a bare API, to use anywhere
- [bokeh.ipynb](https://github.com/stared/livelossplot/blob/master/examples/bokeh.ipynb) - a bare API, plots with Bokeh ([open it in Colab to see the plots](https://colab.research.google.com/github/stared/livelossplot/blob/master/examples/bokeh.ipynb))
- [pytorch.ipynb](https://github.com/stared/livelossplot/blob/master/examples/pytorch.ipynb) - a bare API, as applied to PyTorch
- [2d_prediction_maps.ipynb](https://github.com/stared/livelossplot/blob/master/examples/2d_prediction_maps.ipynb) - example of custom plots - 2d prediction maps (0.4.1+)
- [poutyne.ipynb](https://github.com/stared/livelossplot/blob/master/examples/poutyne.ipynb) - a Poutyne callback ([Poutyne](https://poutyne.org/) is a Keras-like framework for PyTorch)
- [torchbearer.ipynb](https://github.com/stared/livelossplot/blob/master/examples/torchbearer.ipynb) - an example using the built in functionality from torchbearer ([torchbearer](https://github.com/ecs-vlc/torchbearer) is a model fitting library for PyTorch)
- [neptune.py](https://github.com/stared/livelossplot/blob/master/examples/neptune.py) and [neptune.ipynb](https://github.com/stared/livelossplot/blob/master/examples/neptune.ipynb) - a [Neptune.AI](https://neptune.ai/)
- [matplotlib.ipynb](https://github.com/stared/livelossplot/blob/master/examples/matplotlib.ipynb) - a Matplotlib output example
- [various_options.ipynb](https://github.com/stared/livelossplot/blob/master/examples/various_options.ipynb) - an extended API for metrics grouping and custom outputs

You [run examples in Colab](https://colab.research.google.com/github/stared/livelossplot).

## Overview

Text logs are easy, but it's easy to miss the most crucial information: is it learning, doing nothing or overfitting?
Visual feedback allows us to keep track of the training process. Now there is one for Jupyter.

If you want to get serious - use [TensorBoard](https://www.tensorflow.org/programmers_guide/summaries_and_tensorboard), .
But what if you just want to train a small model in Jupyter Notebook? Here is a way to do so, using `livelossplot` as a plug&play component

### from livelossplot import ...

`PlotLosses` for a generic API.

```{python}
plotlosses = PlotLosses()
plotlosses.update({'acc': 0.7, 'val_acc': 0.4, 'loss': 0.9, 'val_loss': 1.1})
plot.send()  # draw, update logs, etc
```

There are callbacks for common libraries and frameworks: `PlotLossesKeras`, `PlotLossesKerasTF`, `PlotLossesPoutyne`, `PlotLossesIgnite`.

Feel invited to write, and contribute, your adapter.
If you want to use a bare logger, there is `MainLogger`.

### from livelossplot.outputs import ...

Plots: `MatplotlibPlot`, `BokehPlot`.

Loggers: `ExtremaPrinter` (to standard output), `TensorboardLogger`, `TensorboardTFLogger`, `NeptuneLogger`.

To use them, initialize PlotLosses with some outputs:

```{python}
plotlosses = PlotLosses(outputs=[MatplotlibPlot(), TensorboardLogger()])
```

There are custom `matplotlib` plots in `livelossplot.outputs.matplotlib_subplots` you can pass in `MatplotlibPlot` arguments.

If you like to plot with [Bokeh](https://docs.bokeh.org/en/latest/) instead of [matplotlib](https://matplotlib.org/), use

```{python}
plotlosses = PlotLosses(outputs=[BokehPlot()])
```

## Sponsors

This project supported by [Jacek Migdał](http://jacek.migdal.pl/), [Marek Cichy](https://medium.com/@marekkcichy/), [Casper da Costa-Luis](https://cdcl.ml/), and [Piotr Zientara](https://twitter.com/piotr_zientara). [Join the sponsors - show your ❤️ and support, and appear on the list](https://github.com/sponsors/stared)! It will give me time and energy to work on this project.

This project is also supported by a European program *Program Operacyjny Inteligentny Rozwój* for [GearShift - building the engine of behavior of wheeled motor vehicles and map’s generation based on artificial intelligence algorithms implemented on the Unreal Engine platform](https://mapadotacji.gov.pl/projekty/874596/?lang=en) lead by ECC Games (NCBR grant GameINN).

## Trivia

It started as [this gist](https://gist.github.com/stared/dfb4dfaf6d9a8501cd1cc8b8cb806d2e). Since it went popular, I decided to rewrite it as a package.

Oh, and I am in general interested in data vis, see [Simple diagrams of convoluted neural networks](https://medium.com/inbrowserai/simple-diagrams-of-convoluted-neural-networks-39c097d2925b) (and overview of deep learning architecture diagrams):

> A good diagram is worth a thousand equations — let’s create more of these!

...or [my other data vis projects](https://p.migdal.pl/projects/).

## Todo

If you want more functionality - open an [Issue](https://github.com/stared/livelossplot/issues) or even better - prepare a [Pull Request](https://github.com/stared/livelossplot/pulls).



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/stared/livelossplot",
    "name": "livelossplot",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "keras,pytorch,plot,chart,deep-learning",
    "author": "Piotr Migda\u0142",
    "author_email": "pmigdal@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/13/e9/7a1bdea97b97a321844f38d707fe3e786d598215e6dc06e5a024f8494fe0/livelossplot-0.5.5.tar.gz",
    "platform": null,
    "description": "# livelossplot\n\n[![livelossplot version - PyPI](https://img.shields.io/pypi/v/livelossplot)](https://pypi.org/project/livelossplot/)\n![PyPI status](https://img.shields.io/pypi/status/livelossplot.svg)\n![MIT license - PyPI](https://img.shields.io/pypi/l/livelossplot.svg)\n![Python version - PyPI](https://img.shields.io/pypi/pyversions/livelossplot.svg)\n[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/stared/livelossplot/Python%20package)](https://github.com/stared/livelossplot/actions)\n[![Downloads](http://pepy.tech/badge/livelossplot)](https://pepy.tech/project/livelossplot)\n[![Twitter @pmigdal](https://img.shields.io/twitter/follow/pmigdal)](https://twitter.com/pmigdal)\n\nDon't train deep learning models blindfolded! Be impatient and look at each epoch of your training!\n\n([RECENT CHANGES](CHANGELOG.md), [EXAMPLES IN COLAB](https://colab.research.google.com/github/stared/livelossplot), [API LOOKUP](http://p.migdal.pl/livelossplot/), [CODE](https://github.com/stared/livelossplot))\n\nA live training loss plot in [Jupyter Notebook](http://jupyter.org/) for [Keras](https://keras.io/), [PyTorch](http://pytorch.org/) and other frameworks. An open-source Python package by [Piotr Migda\u0142](https://p.migdal.pl/), [Bart\u0142omiej Olechno](https://github.com/Bartolo1024/) and [others](https://github.com/stared/livelossplot/graphs/contributors). **Open for collaboration!** (Some tasks are as simple as writing code docstrings, so - no excuses! :))\n\n```python\nfrom livelossplot import PlotLossesKeras\n\nmodel.fit(X_train, Y_train,\n          epochs=10,\n          validation_data=(X_test, Y_test),\n          callbacks=[PlotLossesKeras()],\n          verbose=0)\n```\n\n![Animated fig for livelossplot tracking log-loss and accuracy](https://raw.githubusercontent.com/stared/livelossplot/master/livelossplot.gif)\n\n- (The most FA)Q: Why not TensorBoard?\n- A: Jupyter Notebook compatibility (for exploration and teaching). The simplicity of use.\n\n## Installation\n\nTo install [this version from PyPI](https://pypi.org/project/livelossplot/), type:\n\n```bash\npip install livelossplot\n```\n\nTo get the newest one from this repo (note that we are in the alpha stage, so there may be frequent updates), type:\n\n```bash\npip install git+git://github.com/stared/livelossplot.git\n```\n\n## Examples\n\nLook at notebook files with full working [examples](https://github.com/stared/livelossplot/blob/master/examples/):\n\n- [keras.ipynb](https://github.com/stared/livelossplot/blob/master/examples/keras.ipynb) - a Keras callback\n- [minimal.ipynb](https://github.com/stared/livelossplot/blob/master/examples/minimal.ipynb) - a bare API, to use anywhere\n- [bokeh.ipynb](https://github.com/stared/livelossplot/blob/master/examples/bokeh.ipynb) - a bare API, plots with Bokeh ([open it in Colab to see the plots](https://colab.research.google.com/github/stared/livelossplot/blob/master/examples/bokeh.ipynb))\n- [pytorch.ipynb](https://github.com/stared/livelossplot/blob/master/examples/pytorch.ipynb) - a bare API, as applied to PyTorch\n- [2d_prediction_maps.ipynb](https://github.com/stared/livelossplot/blob/master/examples/2d_prediction_maps.ipynb) - example of custom plots - 2d prediction maps (0.4.1+)\n- [poutyne.ipynb](https://github.com/stared/livelossplot/blob/master/examples/poutyne.ipynb) - a Poutyne callback ([Poutyne](https://poutyne.org/) is a Keras-like framework for PyTorch)\n- [torchbearer.ipynb](https://github.com/stared/livelossplot/blob/master/examples/torchbearer.ipynb) - an example using the built in functionality from torchbearer ([torchbearer](https://github.com/ecs-vlc/torchbearer) is a model fitting library for PyTorch)\n- [neptune.py](https://github.com/stared/livelossplot/blob/master/examples/neptune.py) and [neptune.ipynb](https://github.com/stared/livelossplot/blob/master/examples/neptune.ipynb) - a [Neptune.AI](https://neptune.ai/)\n- [matplotlib.ipynb](https://github.com/stared/livelossplot/blob/master/examples/matplotlib.ipynb) - a Matplotlib output example\n- [various_options.ipynb](https://github.com/stared/livelossplot/blob/master/examples/various_options.ipynb) - an extended API for metrics grouping and custom outputs\n\nYou [run examples in Colab](https://colab.research.google.com/github/stared/livelossplot).\n\n## Overview\n\nText logs are easy, but it's easy to miss the most crucial information: is it learning, doing nothing or overfitting?\nVisual feedback allows us to keep track of the training process. Now there is one for Jupyter.\n\nIf you want to get serious - use [TensorBoard](https://www.tensorflow.org/programmers_guide/summaries_and_tensorboard), .\nBut what if you just want to train a small model in Jupyter Notebook? Here is a way to do so, using `livelossplot` as a plug&play component\n\n### from livelossplot import ...\n\n`PlotLosses` for a generic API.\n\n```{python}\nplotlosses = PlotLosses()\nplotlosses.update({'acc': 0.7, 'val_acc': 0.4, 'loss': 0.9, 'val_loss': 1.1})\nplot.send()  # draw, update logs, etc\n```\n\nThere are callbacks for common libraries and frameworks: `PlotLossesKeras`, `PlotLossesKerasTF`, `PlotLossesPoutyne`, `PlotLossesIgnite`.\n\nFeel invited to write, and contribute, your adapter.\nIf you want to use a bare logger, there is `MainLogger`.\n\n### from livelossplot.outputs import ...\n\nPlots: `MatplotlibPlot`, `BokehPlot`.\n\nLoggers: `ExtremaPrinter` (to standard output), `TensorboardLogger`, `TensorboardTFLogger`, `NeptuneLogger`.\n\nTo use them, initialize PlotLosses with some outputs:\n\n```{python}\nplotlosses = PlotLosses(outputs=[MatplotlibPlot(), TensorboardLogger()])\n```\n\nThere are custom `matplotlib` plots in `livelossplot.outputs.matplotlib_subplots` you can pass in `MatplotlibPlot` arguments.\n\nIf you like to plot with [Bokeh](https://docs.bokeh.org/en/latest/) instead of [matplotlib](https://matplotlib.org/), use\n\n```{python}\nplotlosses = PlotLosses(outputs=[BokehPlot()])\n```\n\n## Sponsors\n\nThis project supported by [Jacek Migda\u0142](http://jacek.migdal.pl/), [Marek Cichy](https://medium.com/@marekkcichy/), [Casper da Costa-Luis](https://cdcl.ml/), and [Piotr Zientara](https://twitter.com/piotr_zientara). [Join the sponsors - show your \u2764\ufe0f and support, and appear on the list](https://github.com/sponsors/stared)! It will give me time and energy to work on this project.\n\nThis project is also supported by a European program *Program Operacyjny Inteligentny Rozw\u00f3j* for [GearShift - building the engine of behavior of wheeled motor vehicles and map\u2019s generation based on artificial intelligence algorithms implemented on the Unreal Engine platform](https://mapadotacji.gov.pl/projekty/874596/?lang=en) lead by ECC Games (NCBR grant GameINN).\n\n## Trivia\n\nIt started as [this gist](https://gist.github.com/stared/dfb4dfaf6d9a8501cd1cc8b8cb806d2e). Since it went popular, I decided to rewrite it as a package.\n\nOh, and I am in general interested in data vis, see [Simple diagrams of convoluted neural networks](https://medium.com/inbrowserai/simple-diagrams-of-convoluted-neural-networks-39c097d2925b) (and overview of deep learning architecture diagrams):\n\n> A good diagram is worth a thousand equations\u200a\u2014\u200alet\u2019s create more of these!\n\n...or [my other data vis projects](https://p.migdal.pl/projects/).\n\n## Todo\n\nIf you want more functionality - open an [Issue](https://github.com/stared/livelossplot/issues) or even better - prepare a [Pull Request](https://github.com/stared/livelossplot/pulls).\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Live training loss plot in Jupyter Notebook for Keras, PyTorch and others.",
    "version": "0.5.5",
    "split_keywords": [
        "keras",
        "pytorch",
        "plot",
        "chart",
        "deep-learning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "601a42558942f53b6b3eb131300b1036",
                "sha256": "fde7c2894e841ada77f6c546ec0689ece9ffe2aca8b1fe09501e50a0ab7e3b86"
            },
            "downloads": -1,
            "filename": "livelossplot-0.5.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "601a42558942f53b6b3eb131300b1036",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 22558,
            "upload_time": "2022-04-04T16:14:08",
            "upload_time_iso_8601": "2022-04-04T16:14:08.453662Z",
            "url": "https://files.pythonhosted.org/packages/e3/fd/07864f0fdb2d279d2b777fd6ac1ce6e31d19b23b7bc9807145b076d49f2b/livelossplot-0.5.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "b76a01ca084228a0ebd481bbd1aedb06",
                "sha256": "e3dde5d4d56bcfda74b295a57d201fba589c03ff395c257199affe1da8b44d35"
            },
            "downloads": -1,
            "filename": "livelossplot-0.5.5.tar.gz",
            "has_sig": false,
            "md5_digest": "b76a01ca084228a0ebd481bbd1aedb06",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 19858,
            "upload_time": "2022-04-04T16:14:10",
            "upload_time_iso_8601": "2022-04-04T16:14:10.131636Z",
            "url": "https://files.pythonhosted.org/packages/13/e9/7a1bdea97b97a321844f38d707fe3e786d598215e6dc06e5a024f8494fe0/livelossplot-0.5.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-04-04 16:14:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "stared",
    "github_project": "livelossplot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "livelossplot"
}
        
Elapsed time: 0.02316s