{ "info": { "author": "Maxim Kochurov, Victor Yanush", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "geoopt\n======\n\n|Python Package Index| |Read The Docs| |Build Status| |Coverage Status| |Codestyle Black|\n\nManifold aware ``pytorch.optim``.\n\nUnofficial implementation for `\u201cRiemannian Adaptive Optimization\nMethods\u201d`_ ICLR2019 and more.\n\nWhat is done so far\n-------------------\n\nWork is in progress but you can already use this. Note that API might\nchange in future releases.\n\nTensors\n~~~~~~~\n\n- ``geoopt.ManifoldTensor`` \u2013 just as torch.Tensor with additional\n ``manifold`` keyword argument.\n- ``geoopt.ManifoldParameter`` \u2013 same as above, recognized in\n ``torch.nn.Module.parameters`` as correctly subclassed.\n\nAll above containers have special methods to work with them as with\npoints on a certain manifold\n\n- ``.proj_()`` \u2013 inplace projection on the manifold.\n- ``.proju(u)`` \u2013 project vector ``u`` on the tangent space. You need\n to project all vectors for all methods below.\n- ``.inner(u, v=None)`` \u2013 inner product at this point for two\n **tangent** vectors at this point. The passed vectors are not\n projected, they are assumed to be already projected.\n- ``.retr(u, t)`` \u2013 retraction map following vector ``u`` for time\n ``t``\n- ``.transp(u, t, v, *more)`` \u2013 transport vector ``v`` (and possibly\n more vectors) with direction ``u`` for time ``t``\n- ``.retr_transp(u, t, v, *more)`` \u2013 transport ``self``, vector ``v``\n (and possibly more vectors) with direction ``u`` for time ``t``\n (returns are plain tensors)\n\nManifolds\n~~~~~~~~~\n\n- ``geoopt.Euclidean`` \u2013 unconstrained manifold in ``R`` with\n Euclidean metric\n- ``geoopt.Stiefel`` \u2013 Stiefel manifold on matrices\n ``A in R^{n x p} : A^t A=I``, ``n >= p``\n\nOptimizers\n~~~~~~~~~~\n\n- ``geoopt.optim.RiemannianSGD`` \u2013 a subclass of ``torch.optim.SGD``\n with the same API\n- ``geoopt.optim.RiemannianAdam`` \u2013 a subclass of ``torch.optim.Adam``\n\nSamplers\n~~~~~~~~\n\n- ``geoopt.samplers.RSGLD`` \u2013 Riemannian Stochastic Gradient Langevin\n Dynamics\n- ``geoopt.samplers.RHMC`` \u2013 Riemannian Hamiltonian Monte-Carlo\n- ``geoopt.samplers.SGRHMC`` \u2013 Stochastic Gradient Riemannian\n Hamiltonian Monte-Carlo\n\n.. _\u201cRiemannian Adaptive Optimization Methods\u201d: https://openreview.net/forum?id=r1eiqi09K7\n\n.. |Python Package Index| image:: https://img.shields.io/pypi/v/geoopt.svg\n :target: https://pypi.python.org/pypi/heamy\n.. |Read The Docs| image:: https://readthedocs.org/projects/geoopt/badge/?version=latest\n :target: https://geoopt.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n.. |Build Status| image:: https://travis-ci.com/ferrine/geoopt.svg?branch=master\n :target: https://travis-ci.com/ferrine/geoopt\n.. |Coverage Status| image:: https://coveralls.io/repos/github/ferrine/geoopt/badge.svg?branch=master\n :target: https://coveralls.io/github/ferrine/geoopt?branch=master\n.. |Codestyle Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ferrine/geoopt", "keywords": "", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "geoopt", "package_url": "https://pypi.org/project/geoopt/", "platform": "", "project_url": "https://pypi.org/project/geoopt/", "project_urls": { "Homepage": "https://github.com/ferrine/geoopt" }, "release_url": "https://pypi.org/project/geoopt/0.0.1/", "requires_dist": [ "torch", "numpy" ], "requires_python": ">=3.6.0", "summary": "Unofficial implementation for \u201cRiemannian Adaptive Optimization Methods\u201d ICLR2019 and more", "version": "0.0.1" }, "last_serial": 4661557, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "4d783d3a23f7d8d8db013cf093257a05", "sha256": "951d63fb238977637f59c53fae08eb4512a54838f12b6697d97bee45a05467b5" }, "downloads": -1, "filename": "geoopt-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4d783d3a23f7d8d8db013cf093257a05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 25497, "upload_time": "2019-01-04T19:42:35", "url": "https://files.pythonhosted.org/packages/1d/df/c1507a090f21e53c5e56957519396d0bd6b5f5cc2f0c760eba2bc5433138/geoopt-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a43826cbc5461a900e01a6a9dca6273e", "sha256": "308da79abefdfaca67c7057dd6d5bd5d728d63295db8dead40a9f1c166a13a08" }, "downloads": -1, "filename": "geoopt-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a43826cbc5461a900e01a6a9dca6273e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 14250, "upload_time": "2019-01-04T19:42:37", "url": "https://files.pythonhosted.org/packages/f3/b1/12c114fb0c12e220df695f7bdc09aedd7fe2993b3ee500ed5deb78f30ee5/geoopt-0.0.1.tar.gz" } ], "0.0.1rc2": [ { "comment_text": "", "digests": { "md5": "46fd99ba5a9a9054939fec90106c0016", "sha256": "9217829f1d6eff6d964c476632173a0998993e6e012062f50531404752c27043" }, "downloads": -1, "filename": "geoopt-0.0.1rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "46fd99ba5a9a9054939fec90106c0016", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 20453, "upload_time": "2018-12-28T11:40:37", "url": "https://files.pythonhosted.org/packages/0f/d9/f25529555f986d04e986141c0f1ac033811f6e340625b8de8c8bfaa4ead8/geoopt-0.0.1rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "357f3bd42220f6ee74216d4d4ac40e24", "sha256": "13b386e7eaf4e0e7710045f78fd51395f12e1803b30a56f23bdf2820c06e519e" }, "downloads": -1, "filename": "geoopt-0.0.1rc2.tar.gz", "has_sig": false, "md5_digest": "357f3bd42220f6ee74216d4d4ac40e24", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 12797, "upload_time": "2018-12-28T11:40:39", "url": "https://files.pythonhosted.org/packages/9e/d1/44ae978a14944d77167ec606c488ad85a174c1850ac4f460b70d60043d6d/geoopt-0.0.1rc2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4d783d3a23f7d8d8db013cf093257a05", "sha256": "951d63fb238977637f59c53fae08eb4512a54838f12b6697d97bee45a05467b5" }, "downloads": -1, "filename": "geoopt-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4d783d3a23f7d8d8db013cf093257a05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 25497, "upload_time": "2019-01-04T19:42:35", "url": "https://files.pythonhosted.org/packages/1d/df/c1507a090f21e53c5e56957519396d0bd6b5f5cc2f0c760eba2bc5433138/geoopt-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a43826cbc5461a900e01a6a9dca6273e", "sha256": "308da79abefdfaca67c7057dd6d5bd5d728d63295db8dead40a9f1c166a13a08" }, "downloads": -1, "filename": "geoopt-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a43826cbc5461a900e01a6a9dca6273e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 14250, "upload_time": "2019-01-04T19:42:37", "url": "https://files.pythonhosted.org/packages/f3/b1/12c114fb0c12e220df695f7bdc09aedd7fe2993b3ee500ed5deb78f30ee5/geoopt-0.0.1.tar.gz" } ] }