Source code for mgplvm.optimisers.stopping_criterions

import numpy as np


[docs]class LossMarginStop(): def __init__(self, loss_margin=0, stop_after=10): ''' loss_margin [optional] : float, default=0 loss margin tolerated for training progress, can be negative (require improvement every iteration) stop_iters [optional]: int, default=10 maximum number of training iterations above loss margin tolerated before stopping ''' self.lowest_loss = np.inf self.stop_ = 0 self.loss_margin = loss_margin self.stop_after = stop_after def __call__(self, model, i, loss_val): if loss_val <= self.lowest_loss + self.loss_margin: self.stop_ = 0 else: self.stop_ += 1 if loss_val < self.lowest_loss: self.lowest_loss = loss_val return (self.stop_ > self.stop_after)