class, 'epoch'), monitor='main/loss', patients=3, mode='auto', verbose=False, max_trigger=(100, 'epoch'))[source]

Trigger for Early Stopping

It can be used as a stop trigger of Trainer to realize early stopping technique.

This trigger works as follows. Within each check interval defined by the check_trigger argument, it monitors and accumulates the reported value at each iteration. At the end of each interval, it computes the mean of the accumulated values and compares it to the previous ones to maintain the best value. When it finds that the best value is not updated for some periods (defined by patients), this trigger fires.

  • monitor (str) – The metric you want to monitor
  • check_trigger – Trigger that decides the comparison interval between current best value and new value. This must be a tuple in the form of <int>, 'epoch' or <int>, 'iteration' which is passed to IntervalTrigger.
  • patients (int) – Counts to let the trigger be patient. The trigger will not fire until the condition is met for successive patient checks.
  • mode (str) – 'max', 'min', or 'auto'. It is used to determine how to compare the monitored values.
  • verbose (bool) – Enable verbose output. If verbose is true, you can get more information
  • max_trigger – Upper bound of the number of training loops



Decides whether the training loop should be stopped.

Parameters:trainer (Trainer) – Trainer object that this trigger is associated with. The observation of this trainer is used to determine if the trigger should fire.
Returns:True if the training loop should be stopped.
Return type:bool