class, check_trigger=(1, 'epoch'), monitor='main/loss', patience=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 patience), 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.

  • patience (int) – Counts to let the trigger be patient. The trigger will not fire until the condition is met for successive patience 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


patients is also available as an alias of patience for historical reason.



Decides whether the training loop should be stopped.


trainer (Trainer) – Trainer object that this trigger is associated with. The observation of this trainer is used to determine if the trigger should fire.


True if the training loop should be stopped.

Return type


__eq__(value, /)

Return self==value.

__ne__(value, /)

Return self!=value.

__lt__(value, /)

Return self<value.

__le__(value, /)

Return self<=value.

__gt__(value, /)

Return self>value.

__ge__(value, /)

Return self>=value.