emerging_optimizers.riemannian_optimizers#

class emerging_optimizers.riemannian_optimizers.normalized_optimizer.ObliqueAdam(
params,
lr=0.001,
betas=(0.9, 0.99),
weight_decay=0.0,
dim=0,
eps=1e-08,
correct_bias=True,
)[source]#

Adam optimizer for row- or column-normalized 2D parameters on oblique manifolds.

This optimizer adapts an Adam-like algorithm to work on oblique manifolds, where parameters are constrained to have unit-norm rows or columns. It combines adaptive momentum estimation with Riemannian gradient computation and manifold retraction.

Parameters:
step(closure=None)[source]#

Performs a single optimization step.

Parameters:

closure (Callable[[], float] | None) – A closure that reevaluates the model and returns the loss.

Return type:

float | None

class emerging_optimizers.riemannian_optimizers.normalized_optimizer.ObliqueSGD(
params,
lr=0.001,
momentum=0.9,
weight_decay=0.0,
dim=0,
eps=1e-08,
)[source]#

SGD optimizer for row- or column-normalized 2D parameters on oblique manifolds.

This optimizer performs SGD on oblique manifolds, where parameters are constrained to have unit-norm rows or columns. It implements Riemannian SGD with manifold-aware gradient updates and retraction operations.

References

Parameters:
  • lr (float) – learning rate

  • momentum (float) – momentum coefficient

  • weight_decay (float) – weight decay coefficient

  • dim (int) – The dimension to normalize over

  • eps (float) – epsilon for numerical stability

  • params (list[Parameter])

step(closure=None)[source]#

Performs a single optimization step.

Parameters:

closure (Callable[[], float] | None) – A closure that reevaluates the model and returns the loss.

Return type:

float | None