
Coletor ciente pytorch.optim .
Implementação não oficial para os “métodos de otimização adaptativa da Riemannian” ICLR2019 e muito mais.
Certifique -se de ter pytorch> = 2.0.1 instalado
Existem duas maneiras de instalar o geopt:
pip install git+https://github.com/geoopt/geoopt.gitpip install geooptA maneira preferida de instalar o geopt mudará assim que o estágio estável do projeto for alcançado. Agora, o Pypi está por trás do mestre ao desenvolver e implementar ativamente novos recursos.
O Geoopt suporta oficialmente 2 versões estáveis mais recentes do Pytorch Upstream ou o último lançamento mais recente.
O trabalho está em andamento, mas você já pode usar isso. Observe que a API pode mudar em lançamentos futuros.
geoopt.ManifoldTensor - Assim como a manifold .geoopt.ManifoldParameter - O mesmo que acima, reconhecido em torch.nn.Module.parameters como subclassem corretamente.Todos os recipientes acima têm métodos especiais para trabalhar com eles, como com pontos em um determinado coletor
.proj_() - Projeção no local no coletor..proju(u) - Vector de projeto u no espaço tangente. Você precisa projetar todos os vetores para todos os métodos abaixo..egrad2rgrad(u) - Gradiente do projeto u no coletor riemanniano.inner(u, v=None) - produto interno neste momento para dois vetores tangentes neste momento. Os vetores aprovados não são projetados, supõe -se que já sejam projetados..retr(u) - mapa de retração seguindo o vetor u.expmap(u) - mapa exponencial seguindo o vetor u (se o Expmap não estiver disponível em forma fechada, a melhor aproximação será usada).transp(v, u) - Transporte Vector v com Direção u.retr_transp(v, u) - transporte self , vetor v (e possivelmente mais vetores) com direção u (os retornos são tensores simples)geoopt.Euclidean - variedade irrestrita em R com métrica euclidianageoopt.Stiefel - stiefel diversos em matrizes A in R^{nxp} : A^t A=I , n >= pgeoopt.Sphere - Sphere Molyold ||x||=1geoopt.BirkhoffPolytope - coletor de matrizes duplamente estocásticasgeoopt.Stereographic - Modelo de projeção estereográfica de curvatura constantegeoopt.SphereProjection - Modelo de projeção estereográfica da esferageoopt.PoincareBall - Modelo de Ball Poincaregeoopt.Lorentz - modelo hiperboloidegeoopt.ProductManifold - Construtor do coletor de produtogeoopt.Scaled - versão escalada do coletor. Semelhante à aprendizagem de representações de curvatura mista em espaços de produtos se combinados com ProductManifoldgeoopt.SymmetricPositiveDefinite - coletor de matriz SPDgeoopt.UpperHalf - Siegel Half Haltifold. Suporta métricas da Riemannian e Finsler, como em espaços simétricos para incorporações de gráficos: uma abordagem Finsler-Riemannian.geoopt.BoundedDomain - Siegel limitou o coletor de domínio. Suporta métricas Riemannian e Finsler.Todos os coletores implementam métodos necessários para manipular tensores em coletores e vetores tangentes a serem usados em fins gerais. Veja mais em documentação.
geoopt.optim.RiemannianSGD - uma subclasse de torch.optim.SGD com a mesma APIgeoopt.optim.RiemannianAdam - uma subclasse 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 O módulo experimental geoopt.layers permite incorporar o geoptot em aprendizado profundo
Se você achar este projeto útil em sua pesquisa, adicione por favor esta entrada do Bibtex nas referências e 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