A simple python package to print a keras NN training history.
Project description
A python package to print a Keras model training history
How do I install this package?
As usual, just download it using pip:
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:
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:
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!
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:
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
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 is available:
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
Cite this software
If you need a bib file to cite this work, here you have it:
@misc{CappellettiPKH2022,
author = {Luca, Cappelletti},
title = {Plot Keras History},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/LucaCappelletti94/plot_keras_history}},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file plot_keras_history-1.1.36.tar.gz
.
File metadata
- Download URL: plot_keras_history-1.1.36.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c34f5adf89e1c111df4027618198655be6046733cace2bd687b5b6e23ba6213 |
|
MD5 | 9bdef631cfa5d044116ec14cfd50e9f5 |
|
BLAKE2b-256 | b49a97328b52fe29e69785687deea910c80dc40187a83401c1e2e75ff422826a |