INNER CODE UNIT · Python
after_epoch
timeseriesAI/tsai · tsai/callback/core.py:80
def after_epoch(self):
"Plot validation loss in the pbar graph"
if not self.nb_batches: return
rec = self.learn.recorder
if self.epoch == 0:
self.rec_start = len(rec.losses)
iters = range_of(rec.losses)
all_losses = rec.losses if self.epoch == 0 else rec.losses[self.rec_start-1:]
val_losses = np.stack(rec.values)[:, self.learn.recorder.loss_idxs[-1]].tolist()
if rec.valid_metrics and val_losses[0] is not None:
all_losses = all_losses + val_losses
else:
val_losses = [None] * len(iters)
y_min, y_max = min(all_losses), max(all_losses)
margin = (y_max - y_min) * .05
x_bounds = (0, len(rec.losses) - 1)
y_bounds = (y_min - margin, y_max + margin)
self.update_graph([(iters, rec.losses), (self.nb_batches, val_losses)], x_bounds, y_bounds)