
Vielfalt bewusst pytorch.optim .
Inoffizielle Implementierung für „Riemannian adaptive Optimierungsmethoden“ ICLR2019 und mehr.
Stellen Sie sicher, dass Sie Pytorch> = 2.0.1 installiert haben
Es gibt zwei Möglichkeiten, Geoopt zu installieren:
pip install git+https://github.com/geoopt/geoopt.gitpip install geooptDie bevorzugte Möglichkeit zur Installation von Geoopt wird sich ändern, sobald die stabile Projektphase erreicht ist. Jetzt steht PYPI hinter Master, da wir neue Funktionen aktiv entwickeln und implementieren.
Geoopt unterstützt offiziell 2 neueste stabile Versionen von Pytorch Upstream oder der neuesten Hauptveröffentlichung.
Die Arbeiten sind in Arbeit, aber Sie können dies bereits verwenden. Beachten Sie, dass sich die API in zukünftigen Veröffentlichungen ändern könnte.
geoopt.ManifoldTensor - genau wie Torch.tensor mit zusätzlichem manifold -Keyword -Argument.geoopt.ManifoldParameter - Wie oben, in torch.nn.Module.parameters als korrekt unterklassifiziert anerkannt.Alle oben genannten Behälter haben spezielle Methoden, um mit ihnen wie mit Punkten auf einem bestimmten Verteiler zusammenzuarbeiten
.proj_() - Prognose auf dem Verteiler..proju(u) - Projektvektor u auf dem Tangentenraum. Sie müssen alle Vektoren für alle folgenden Methoden projizieren..egrad2rgrad(u) - Projektgradient u auf Riemannschen Verteiler.inner(u, v=None) - Zu diesem Zeitpunkt für zwei Tangentenvektoren innere Produkte. Die bestandenen Vektoren werden nicht projiziert, sie werden bereits angenommen, dass sie bereits projiziert werden..retr(u) - Rückzugskarte nach Vektor u.expmap(u) - Exponentialkarte nach Vektor u (wenn expmap nicht in geschlossener Form verfügbar ist, wird die beste Näherung verwendet).transp(v, u) - Transportvektor v mit Richtung u.retr_transp(v, u) - Transport self , Vektor v (und möglicherweise mehr Vektoren) mit Richtung u (Renditen sind einfache Tensoren)geoopt.Euclidean - Unbekannter Verteiler in R mit euklidischen Metrikgeoopt.Stiefel - Stiefel -Verteiler auf den Matrizen A in R^{nxp} : A^t A=I , n >= pgeoopt.Sphere - Kugelkrümmer ||x||=1geoopt.BirkhoffPolytope - Verteiler doppelt stochastischer Matrizengeoopt.Stereographic - Stereografieprojektionsmodell konstanter Krümmunggeoopt.SphereProjection - Sphere Stereographic -Projektionsmodellgeoopt.PoincareBall - Poincare -Ballmodellgeoopt.Lorentz - Hyperboloidmodellgeoopt.ProductManifold - Produkt vieler Konstruktorgeoopt.Scaled - Skalierte Version des Verteilers. Ähnlich wie das Lernen von Mischkurvendarstellungen in Produkträumen in Kombination mit ProductManifoldgeoopt.SymmetricPositiveDefinite - SPD -Matrix -Verteilergeoopt.UpperHalf - Siegel obere Hälfte. Unterstützt die Metriken von Riemannian und Finsler, wie in symmetrischen Räumen für Grafik-Einbettungen: ein Finsler-Riemannian-Ansatz.geoopt.BoundedDomain - Siegel begrenzte Domänenverteiler. Unterstützt die Metriken von Riemannian und Finsler.Alle Verteiler implementieren Methoden, die zur Manipulation von Tensoren auf Verteilern und Tangentenvektoren erforderlich sind, um allgemeine Zwecke zu verwenden. Weitere Informationen finden Sie in Dokumentation.
geoopt.optim.RiemannianSGD - Eine Unterklasse von torch.optim.SGD mit derselben APIgeoopt.optim.RiemannianAdam - Eine Unterklasse von torch.optim.Adamgeoopt.samplers.RSGLD - Riemannianer stochastischer Gradienten Langevin Dynamikgeoopt.samplers.RHMC - Riemannian Hamiltonian Monte -Carlogeoopt.samplers.SGRHMC - Stochastischer Gradienten Riemannian Hamiltonian Monte -Carlo Experimental geoopt.layers Modul ermöglicht es, Geoopt in Deep Learning einzubetten
Wenn Sie dieses Projekt in Ihrer Forschung nützlich finden, fügen Sie bitte diesen Bibtex -Eintrag in Referenzen hinzu und zitieren Sie.
@misc { geoopt2020kochurov ,
title = { Geoopt: Riemannian Optimization in PyTorch } ,
author = { Max Kochurov and Rasul Karimov and Serge Kozlukov } ,
year = { 2020 } ,
eprint = { 2005.02819 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CG }
}ETH: 0x008319973D4017414FDF5B3BEF1369BA78275C6A