in tools/tensorflow_docs/plots/__init__.py [0:0]
def plot(self, histories, metric=None, smoothing_std=None):
"""Plots a {name: history} dictionary of Keras histories.
Colors are assigned to the name-key, and maintained from call to call.
Training metrics are shown as a solid line, validation metrics dashed.
Args:
histories: {name: history} a dictionary of Keras histories.
metric: which metric to plot from all the histories.
smoothing_std: the standard deviation of the smoothing kernel applied
before plotting. The units are in array-indices.
"""
if metric is None:
metric = self.metric
if smoothing_std is None:
smoothing_std = self.smoothing_std
for name, history in histories.items():
# Remember name->color associations.
if name in self.color_table:
color = self.color_table[name]
else:
color = COLOR_CYCLE[len(self.color_table) % len(COLOR_CYCLE)]
self.color_table[name] = color
train_value = history.history[metric]
val_value = history.history['val_' + metric]
if smoothing_std is not None:
train_value = _smooth(train_value, std=smoothing_std)
val_value = _smooth(val_value, std=smoothing_std)
plt.plot(
history.epoch,
train_value,
color=color,
label=name.title() + ' Train')
plt.plot(
history.epoch,
val_value,
'--',
label=name.title() + ' Val',
color=color)
plt.xlabel('Epochs')
plt.ylabel(metric.replace('_', ' ').title())
plt.legend()
plt.xlim(
[0, max([history.epoch[-1] for name, history in histories.items()])])
plt.grid(True)