Skip to main content

Welcome to CDOpt

A Python toolbox for optimization on closed Riemannian manifolds with support for automatic differentiation

Riemannian optimization is a powerful framework to tackle nonlinear optimization problems with structural equality constraints. By transforming these Riemannian optimization problems into the minimization of constraint dissolving functions, CDOpt allows for elegant and direct implementation various unconstrained optimization approaches for Riemannian optimization problems. CDOpt also provides user-friendly frameworks for training manifold constrained neural networks by PyTorch and Flax.

The constraint dissolving approaches have the following advantages:

  • Direct optimization & high efficiency: CDOpt is developed from the constraint dissolving approaches, which transforms Riemannian optimization problems to unconstrained ones. Therefore, we can utilize various highly efficient solvers for unconstrained optimization, and directly apply them to solve Riemannian optimization problems. Benefited from the rich expertise gained over the decades for unconstrained optimization, CDOpt is very efficient and naturally avoids the difficulties in developing specialized solvers for Riemannian optimization.
  • Plug-in neural layers: CDOpt provides various plug-in neural layers for PyTorch and \Pkg{Flax} packages. With only minor changes in the original codes, users can easily build and train the neural network while constrain the weights over various manifolds.
  • High efficiency: CDOpt has high compatibility with various numerical backends, including NumPy, SciPy, PyTorch, JAX, Flax, etc . Users can directly apply the advanced features of these packages to accelerate optimization, including the automatic differentiation, GPU/TPU supports, distributed optimization frameworks, just-in-time (JIT) compilation, etc.
  • Customized constraints: The manifold classes in CDOpt can be constructed only from the expressions of constraints. Users can easily and directly describe Riemannian optimization problems in CDOpt without any geometrical materials of the Riemannian manifold (e.g., retractions and their inverse, vector-transports, etc.).

Metadata

Release files for cdopt 0.5.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cdopt 0.5.5
File Size Uploaded Provenance
cdopt-0.5.5.tar.gz 74.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cdopt 0.5.5
File Interpreter ABI Platform
cdopt-0.5.5-py3-none-any.whl Python 3 none any Details

Total release size: 215.2 kB

Release files / cdopt-0.5.5.tar.gz

Download URL cdopt-0.5.5.tar.gz
Size 74.7 kB
Tags Source
SHA-256 checksum
How to use checksums
77fa646482405c16b300d96fee1e2d0e1851181e377c092ae00c2990c97e8e33
BLAKE2b-256 checksum
How to use checksums
d7ac430882763efc808494644cdffb2bfcac844a319cbd25cc5bd581d97c9de4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.4.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.26.0 CPython/3.7.0

Release files / cdopt-0.5.5-py3-none-any.whl

Download URL cdopt-0.5.5-py3-none-any.whl
Size 140.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6410ed04ce215c2d0463693a165ea5ac833210987ad3a92f604634f482e80061
BLAKE2b-256 checksum
How to use checksums
bd130d4a36f5a7f481899fb36c38583c380b7fe416246983a765afe124d7dc1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.4.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.26.0 CPython/3.7.0

Security for cdopt 0.5.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.5.5 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page