geoopt
v0.5.1

歧管意识到pytorch.optim 。
ICLR2019等的“ Riemannian自适应优化方法”的非官方实施。
确保已安装了Pytorch> = 2.0.1
安装Geoopt有两种方法:
pip install git+https://github.com/geoopt/geoopt.gitpip install geoopt一旦实现稳定的项目阶段,安装GEOOPT的首选方法将改变。现在,当我们积极开发和实施新功能时,PYPI是主人的落后者。
Geoopt正式支持2种最新稳定版本的Pytorch上游或最新的主要版本。
工作正在进行中,但您已经可以使用此功能了。请注意,API可能会在未来的版本中改变。
geoopt.ManifoldTensor就像TORCH.TENSOR一样,带有其他manifold关键字参数。geoopt.ManifoldParameter与上述相同,在torch.nn.Module.parameters中识别为正确的子分类。上面的所有容器都有特殊的方法可以与它们合作,就像某个多种多样的点一样
.proj_() - 歧管上的Inther投影。.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) - 传输self ,向量v (可能还有更多的向量), u (返回是普通的张量)geoopt.Euclidean欧几里得Rgeoopt.Stiefel矩阵上的stiefel歧管A in R^{nxp} : A^t A=I , n >= pgeoopt.Sphere球歧管||x||=1geoopt.BirkhoffPolytope双随机矩阵的多种多样geoopt.Stereographic恒定曲率立体投影模型geoopt.SphereProjection球体立体投影模型geoopt.PoincareBall庞加雷球模型geoopt.Lorentz倍曲底模型geoopt.ProductManifold产品歧管构造函数geoopt.Scaled歧管的缩放版本。类似于在产品空间中学习的混合曲面表示,如果与ProductManifold结合geoopt.SymmetricPositiveDefinite -SPD矩阵歧管geoopt.UpperHalf西格尔上半歧管。支持Riemannian和Finsler指标,如图形嵌入的对称空间:Finsler-Riemannian方法。geoopt.BoundedDomain西格尔边界域歧管。支持Riemannian和Finsler指标。所有歧管都实现了在一般目的上使用的流形和切线向量上操纵张量的必要方法。在文档中查看更多内容。
geoopt.optim.RiemannianSGD torch.optim.SGD的子类带有相同的APIgeoopt.optim.RiemannianAdam torch.optim.Adam的子类geoopt.samplers.RSGLD -Riemannian随机梯度Langevin Dynamicsgeoopt.samplers.RHMC里曼尼亚汉密尔顿蒙特卡洛geoopt.samplers.SGRHMC随机梯度里曼尼亚汉密尔顿蒙特卡洛实验性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:0x00831973D4017414F5B3BEF1369BA78275C6A