class ott.geometry.epsilon_scheduler.Epsilon(target=None, scale_epsilon=None, init=1.0, decay=1.0)[source]#

Scheduler class for the regularization parameter epsilon.

An epsilon scheduler outputs a regularization strength, to be used by in a Sinkhorn-type algorithm, at any iteration count. That value is either the final, targeted regularization, or one that is larger, obtained by geometric decay of an initial value that is larger than the intended target. Concretely, the value returned by such a scheduler will consider first the max between target and init * target * decay ** iteration. If the scale_epsilon parameter is provided, that value is used to multiply the max computed previously by scale_epsilon.

  • target (Optional[float]) – the epsilon regularizer that is targeted. If None, use \(0.05\).

  • scale_epsilon (Optional[float]) – if passed, used to multiply the regularizer, to rescale it. If None, use \(1\).

  • init (float) – initial value when using epsilon scheduling, understood as multiple of target value. if passed, int * decay ** iteration will be used to rescale target.

  • decay (float) – geometric decay factor, \(<1\).



Return (intermediate) regularizer value at a given iteration.


Return whether the scheduler is done at a given value.


Return whether the scheduler is done at a given iteration.


Return a copy of self, with potential overwrites.



Return the final regularizer value of scheduler.