openfl.utilities.optimizers.numpy.yogi_optimizer.NumPyYogi

class openfl.utilities.optimizers.numpy.yogi_optimizer.NumPyYogi(*, params: Dict[str, ndarray] | None = None, model_interface=None, learning_rate: float = 0.01, betas: Tuple[float, float] = (0.9, 0.999), initial_accumulator_value: float = 0.0, epsilon: float = 1e-08)

Bases: NumPyAdam

Yogi optimizer implementation.

Implements the Yogi optimization algorithm using NumPy. Yogi is an algorithm for first-order gradient-based optimization of stochastic objective functions, based on adaptive estimates of lower-order moments. It is a variant of Adam and it is more robust to large learning rates.

Original paper: https://papers.nips.cc/paper/8186-adaptive-methods-for-nonconvex-optimization

Class Attributes:
  • params (dict, optional) – Parameters to be stored for optimization.

  • model_interface – Model interface instance to provide parameters.

  • learning_rate (float) – Tuning parameter that determines the step size at each iteration.

  • betas (tuple) – Coefficients used for computing running averages of gradient and its square.

  • initial_accumulator_value (float) – Initial value for gradients and squared gradients.

  • epsilon (float) – Value for computational stability.

Methods

step

Perform a single step for parameter update.

step(gradients: Dict[str, ndarray]) None

Perform a single step for parameter update.

Implement Yogi optimizer weights update rule.

Parameters:

gradients (dict) – Partial derivatives with respect to optimized parameters.