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