
Múltiple consciente pytorch.optim .
Implementación no oficial para "Métodos de optimización adaptativa de Riemannian" ICLR2019 y más.
Asegúrese de tener pytorch> = 2.0.1 instalado
Hay dos formas de instalar Geoopt:
pip install git+https://github.com/geoopt/geoopt.gitpip install geooptLa forma preferida de instalar Geoopt cambiará una vez que se logre una etapa de proyecto estable. Ahora, Pypi está detrás de Master a medida que desarrollamos e implementamos activamente nuevas características.
Geoopt admite oficialmente 2 últimas versiones estables de Pytorch Upstream o el último lanzamiento importante.
El trabajo está en progreso, pero ya puede usar esto. Tenga en cuenta que la API podría cambiar en futuras versiones.
geoopt.ManifoldTensor : al igual que Torch.tensor con un argumento adicional de palabras clave manifold .geoopt.ManifoldParameter - Igual que el anterior, reconocido en torch.nn.Module.parameters como se subclasificó correctamente.Todos los contenedores anteriores tienen métodos especiales para trabajar con ellos como con puntos en un determinado colector
.proj_() - Proyección injásica en el colector..proju(u) - Proyecto vector u en el espacio tangente. Debe proyectar todos los vectores para todos los métodos a continuación..egrad2rgrad(u) - Gradiente del proyecto u en el colector de Riemannian.inner(u, v=None) - Producto interno en este punto para dos vectores tangentes en este punto. Los vectores aprobados no se proyectan, se supone que ya están proyectados..retr(u) - mapa de retracción siguiente vector u.expmap(u) - Mapa exponencial después del vector u (si expmap no está disponible en forma cerrada, se usa la mejor aproximación).transp(v, u) - Vector v de transporte con dirección u.retr_transp(v, u) - Transport self , Vector v (y posiblemente más vectores) con la dirección u (los retornos son tensores simples)geoopt.Euclidean - Manifold sin restricciones en R con métrica euclidianageoopt.Stiefel - Stiefel colector en matrices A in R^{nxp} : A^t A=I , n >= pgeoopt.Sphere - Manifold de esfera ||x||=1geoopt.BirkhoffPolytope - colector de matrices doblemente estocásticasgeoopt.Stereographic . Modelo de proyección estereográfica de curvatura constantegeoopt.SphereProjection - Modelo de proyección estereográfica de la esferageoopt.PoincareBall - Modelo de Poincare Ballgeoopt.Lorentz - Modelo de hiperboloidesgeoopt.ProductManifold - Constructor de múltiples de productosgeoopt.Scaled - Versión escalada del colector. Similar al aprendizaje de representaciones de curvatura mixta en espacios de productos si se combina con ProductManifoldgeoopt.SymmetricPositiveDefinite - SPD Matrix Manifoldgeoopt.UpperHalf - Siegel Half Mano Manifold. Apoya las métricas de Riemannian y Finsler, como en espacios simétricos para incrustaciones gráficas: un enfoque de Finsler-Riemannian.geoopt.BoundedDomain - Siegel del dominio delimitado. Apoya las métricas de Riemannian y Finsler.Todos los múltiples implementan los métodos necesarios para manipular tensores en colectores y vectores tangentes que se utilizarán en general. Ver más en documentación.
geoopt.optim.RiemannianSGD - Una subclase de torch.optim.SGD con la misma APIgeoopt.optim.RiemannianAdam - Una subclase de torch.optim.Adamgeoopt.samplers.RSGLD - Gradiente estocástico riemanniano Langevin Dynamicsgeoopt.samplers.RHMC - Riemannian Hamiltonian Monte -Carlogeoopt.samplers.SGRHMC - Gradiente estocástico Riemannian Hamiltonian Monte -Carlo El módulo experimental geoopt.layers permite incrustar a Geoopt en un aprendizaje profundo
Si encuentra útil este proyecto en su investigación, agregue amablemente esta entrada de Bibtex en referencias y cite.
@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