Metadata-Version: 2.1
Name: plot_keras_history
Version: 1.1.37
Summary: A simple python package to print a keras NN training history.
Home-page: https://github.com/LucaCappelletti94/plot_keras_history
Author: Luca Cappelletti
Author-email: cappelletti.luca94@gmail.com
License: MIT
Description: Plot Keras History
        =========================================================================================
        |pip| |downloads|
        
        A python package to print a `Keras model training history <https://keras.io/callbacks/#history>`_
        
        How do I install this package?
        ----------------------------------------------
        As usual, just download it using pip:
        
        .. code:: shell
        
            pip install plot_keras_history
        
        Usage
        ------------------------------------------------
        Let's say you have a model generated by the function my_keras_model:
        
        Plotting a training history
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In the following example we will see how to plot and either show or save the training history:
        
        |standard|
        
        .. code:: python
        
            from plot_keras_history import show_history, plot_history
            import matplotlib.pyplot as plt
        
            model = my_keras_model()
            history = model.fit(...)
            show_history(history)
            plot_history(history, path="standard.png")
            plt.close()
        
        Plotting into separate graphs
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        By default, the graphs are all in one big image, but for various reasons you might need them one by one:
        
        .. code:: python
        
            from plot_keras_history import plot_history
            import matplotlib.pyplot as plt
        
            model = my_keras_model()
            history = model.fit(...)
            plot_history(history, path="singleton", single_graphs=True)
            plt.close()
        
        Plotting multiple histories
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Let's suppose you are training your model on multiple holdouts and you would like to plot all of them,
        plus an average. Fortunately, we got you covered!
        
        |multiple_histories|
        
        .. code:: python
        
            from plot_keras_history import plot_history
            import matplotlib.pyplot as plt
        
            histories = []
            for holdout in range(10):
                model = my_keras_model()
                histories.append(model.fit(...))
            
            plot_history(
                histories,
                show_standard_deviation=False,
                show_average=True
            )
            plt.close()
        
        
        Reducing the history noise with Savgol Filters
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In some occasion it is necessary to be able to see the progress of the history to interpolate the results to remove a bit of noise. A parameter is offered to automatically apply a Savgol filter:
        
        |interpolated|
        
        .. code:: python
        
            from plot_keras_history import plot_history
            import matplotlib.pyplot as plt
        
            model = my_keras_model()
            history = model.fit(...)
            plot_history(history, path="interpolated.png", interpolate=True)
            plt.close()
        
        Automatic aliases
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        A number of metrics are automatically converted from the default ones to more talking ones, for example "lr" becomes "Learning Rate", or "acc" becomes "Accuracy".
        
        Automatic normalization
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        The library automatically normalizes the ranges of metrics that are known to be either in [-1, 1] or [0, 1] ranges in order
        to avoid visual biases.
        
        All the available options
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        .. code:: python
        
            def plot_history(
                history, # Either the history object or a pandas DataFrame. When using a dataframe, the index name is used as abscissae label.
                style:str="-", # The style of the lines.
                interpolate: bool = False, # Wethever to interpolate or not the graphs datapoints.
                side: float = 5, # Dimension of the graphs side.
                graphs_per_row: int = 4, # Number of graphs for each row.
                customization_callback: Callable = None, # Callback for customizing the graphs.
                path: str = None, # Path where to store the resulting image or images (in the case of single_graphs)
                single_graphs: bool = False #  Wethever to save the graphs as single of multiples.
            )
        
        Chaining histories
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        It's common to stop and restart a model's training, and this would break the history object into two: for this reason the method `chain_histories <https://github.com/LucaCappelletti94/plot_keras_history/blob/dd590ce7f89b2a52236f231a9a6377b3e1d76489/plot_keras_history/utils.py#L3-L8>`_ is available:
        
        .. code:: python
        
            from plot_keras_history import chain_histories
        
            model = my_keras_model()
            history1 = model.fit(...)
            history2 = model.fit(...)
            history = chain_histories(history1, history2)
        
        Extras
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Numerous additional metrics are available in `extra_keras_metrics <https://github.com/LucaCappelletti94/extra_keras_metrics>`_
        
        Cite this software
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        If you need a bib file to cite this work, here you have it:
        
        .. code:: bib
        
            @software{Cappelletti_Plot_Keras_History_2022,
                author = {Cappelletti, Luca},
                doi = {10.5072/zenodo.1054923},
                month = {4},
                title = {{Plot Keras History}},
                version = {1.1.36},
                year = {2022}
            }
        
        .. |pip| image:: https://badge.fury.io/py/plot-keras-history.svg
            :target: https://badge.fury.io/py/plot-keras-history
            :alt: Pypi project
        
        .. |downloads| image:: https://pepy.tech/badge/plot-keras-history
            :target: https://pepy.tech/badge/plot-keras-history
            :alt: Pypi total project downloads 
        
        .. |standard| image:: https://github.com/LucaCappelletti94/plot_keras_history/blob/master/plots/normal.png?raw=true
        .. |interpolated| image:: https://github.com/LucaCappelletti94/plot_keras_history/blob/master/plots/interpolated.png?raw=true
        .. |multiple_histories| image:: https://github.com/LucaCappelletti94/plot_keras_history/blob/master/plots/multiple_histories.png?raw=true
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Information Technology
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Provides-Extra: test
