Pymanopt is a Python toolbox for optimization on Riemannian manifolds. The project aims to lower the barrier for users wishing to use state-of-the-art techniques for optimization on manifolds by leveraging automatic differentiation for computing gradients and Hessians, thus saving users time and reducing the potential of calculation and implementation errors.

We encourage users and developers to report problems, request features, ask for help, or leave general comments either on github or gitter. Please refer to our contributing guide if you wish to extend Pymanopt’s functionality and/or contribute to the project.

Pymanopt is distributed under the open source 3-clause BSD license. Please cite this JMLR paper if you publish work using Pymanopt:

    author = {James Townsend and Niklas Koep and Sebastian Weichwald},
    journal = {Journal of Machine Learning Research},
    number = {137},
    pages = {1–5},
    title = {Pymanopt: A Python Toolbox for Optimization on Manifolds using Automatic Differentiation},
    url = {},
    volume = {17},
    year = {2016}