geoopt
v0.5.1

매니 폴드 인식 pytorch.optim .
“리만 니아 적응 최적화 방법”ICLR2019 등에 대한 비공식 구현.
pytorch> = 2.0.1이 설치되어 있는지 확인하십시오
Geoopt를 설치하는 두 가지 방법이 있습니다.
pip install git+https://github.com/geoopt/geoopt.gitpip install geoopt안정적인 프로젝트 단계가 달성되면 Geoopt를 설치하는 선호하는 방법이 변경됩니다. 이제 PYPI는 새로운 기능을 적극적으로 개발하고 구현함에 따라 마스터 뒤에 있습니다.
Geoopt는 공식적으로 2 개의 최신 안정 버전 의 Pytorch 업스트림 또는 최신 주요 릴리스를 지원합니다.
작업이 진행 중이지만 이미 사용할 수 있습니다. API는 향후 릴리스에서 변경 될 수 있습니다.
geoopt.ManifoldTensor 추가 manifold 키워드 인수가있는 Torch.tensor와 마찬가지로.geoopt.ManifoldParameter 위와 동일하며 torch.nn.Module.parameters 에서 올바르게 서브 클래스로 인식됩니다.위의 모든 컨테이너에는 특정 매니 폴드의 포인트와 마찬가지로 작업 할 수있는 특별한 방법이 있습니다.
.proj_() - 매니 폴드에서의 인플레이션 투영..proju(u) - 탄젠트 공간의 프로젝트 벡터 u 아래의 모든 방법에 대해 모든 벡터를 투사해야합니다..egrad2rgrad(u) - 리마니아 매니 폴드의 프로젝트 그라디언트 u.inner(u, v=None) -이 시점 에서이 시점에서 두 개의 접선 벡터에 대한 내부 제품. 통과 된 벡터는 투사되지 않으며 이미 투사 된 것으로 가정합니다..retr(u) - 벡터 u 에 따른 후퇴 맵.expmap(u) - 벡터 u 따르는 지수 맵 (ExpMAP가 닫힌 양식으로 사용할 수없는 경우 최상의 근사치가 사용됩니다).transp(v, u) - 방향 u 가진 전송 벡터 v.retr_transp(v, u) - 방향 u 있는 전송 self , 벡터 v (및 아마도 더 많은 벡터) (반환은 일반 텐서)geoopt.Euclidean . euclidean- 유클리드 메트릭이있는 R 의 제한되지 않은 매니 폴드geoopt.Stiefel -r A in R^{nxp} : A^t A=I , n >= pgeoopt.Sphere -Sphere Manifold ||x||=1geoopt.BirkhoffPolytope Birkhoffpolytope- 이중 확률 적 매트릭스의 매니 폴드geoopt.Stereographic 일정한 곡률 스테레오 그래피 투영 모델geoopt.SphereProjection 구의 입체 프로젝션 모델geoopt.PoincareBall -Poincare Ball 모델geoopt.Lorentz 쌍곡선 모델geoopt.ProductManifold 제품 매니 폴드 생성자geoopt.Scaled 매니 폴드의 스케일 버전. ProductManifold 와 결합 된 경우 제품 공간에서 혼합 큐 레이터 표현과 유사합니다.geoopt.SymmetricPositiveDefinite -SPD 매트릭스 매니 폴드geoopt.UpperHalf . Upperhalf -Siegel 상단 반 매니 폴드. 그래프 임베딩을위한 대칭 공간에서와 같이 Riemannian 및 Finsler 메트릭을 지원합니다 : Finsler-Riemannian 접근.geoopt.BoundedDomain -Siegel 경계 도메인 매니 폴드. Riemannian 및 Finsler 지표를 지원합니다.모든 매니 폴드는 일반적으로 사용될 매니 폴드 및 탄젠트 벡터의 텐서를 조작하는 데 필요한 방법을 구현합니다. 문서에서 자세한 내용을보십시오.
geoopt.optim.RiemannianSGD torch.optim.SGD 의 서브 클래스.geoopt.optim.RiemannianAdam torch.optim.Adam 의 서브 클래스geoopt.samplers.RSGLD Riemannian 확률 구배 Langevin Dynamicsgeoopt.samplers.RHMC -Riemannian Hamiltonian Monte -Carlogeoopt.samplers.SGRHMC 확률 적 구배 Riemannian Hamiltonian Monte -Carlo 실험적인 geoopt.layers 모듈은 Geoopt를 딥 러닝에 포함시킬 수 있습니다.
이 프로젝트가 연구에 유용하다고 생각되면이 Bibtex 항목을 참조에 추가하고 인용하십시오.
@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