Geotorch Versions Save

Constrained optimization toolkit for PyTorch

0.3.0

2 years ago

GeoTorch now is fully compatible with torch.nn.utils.parametrize and it uses it whenever possible.

0.2.0

2 years ago

More flexible initialisation

The current release implements a number of important changes

  • Now it's possible to initialise a constraint to a fixed matrix by simply assigning to the constrained weight
  • Complete rewrite of the logic that allowed to heavily simplify it
  • Updated to be compatible with torch.nn.utils.parametrize, which will be part of PyTorch 1.9
  • Added many new spaces
  • More thorough testing. All the possible constructions are now tested for every manifold

0.1.0

3 years ago

Initial release

Implements the following manifolds:

  • Rn(n): Rⁿ. Unrestricted optimization
  • Sym(n): Vector space of symmetric matrices
  • Skew(n): Vector space of skew-symmetric matrices
  • Sphere(n): Sphere in Rⁿ. It is Sⁿ⁻¹ = { x ∈ Rⁿ | ||x|| = 1 }
  • SO(n): Manifold of n×n orthogonal matrices
  • Stiefel(n,k): Manifold of n×k matrices with orthonormal columns
  • Grassmannian(n,k): Manifold of k-dimensional subspaces in Rⁿ
  • LowRank(n,k,r): Variety of n×k matrices of rank r or less

And the following constructions:

  • Manifold: Manifold that supports Riemannian Gradient Descent and trivializations
  • Fibration: Fibred space π : E → M, constructed from a Manifold E, a submersion π and local sections of dπ
  • ProductManifold: M₁ × ... × Mₖ