
Manifold Aware pytorch.optim
การใช้งานอย่างไม่เป็นทางการสำหรับ“ วิธีการเพิ่มประสิทธิภาพแบบปรับตัวของ Riemannian” ICLR2019 และอีกมากมาย
ตรวจสอบให้แน่ใจว่าคุณติดตั้ง pytorch> = 2.0.1 ติดตั้ง
มีสองวิธีในการติดตั้ง geoopt:
pip install git+https://github.com/geoopt/geoopt.gitpip install geooptวิธีที่ต้องการในการติดตั้ง Geoopt จะเปลี่ยนไปเมื่อขั้นตอนโครงการที่เสถียร ตอนนี้ PYPI อยู่เบื้องหลัง Master ในขณะที่เราพัฒนาและใช้คุณสมบัติใหม่อย่างแข็งขัน
Geoopt สนับสนุน Pytorch Upstream อย่างเป็นทางการ 2 เวอร์ชันล่าสุด หรือรุ่นสำคัญล่าสุด
งานกำลังดำเนินการอยู่ แต่คุณสามารถใช้สิ่งนี้ได้แล้ว โปรดทราบว่า API อาจเปลี่ยนแปลงในอนาคต
geoopt.ManifoldTensor - เช่นเดียวกับ Torch.Tensor ที่มี manifold คำหลักเพิ่มเติมgeoopt.ManifoldParameter - เหมือนกับข้างต้นซึ่งได้รับการยอมรับใน torch.nn.Module.parameters เป็น subclassed อย่างถูกต้องคอนเทนเนอร์ข้างต้นทั้งหมดมีวิธีการพิเศษในการทำงานกับพวกเขาเช่นเดียวกับคะแนนในบางท่อ
.proj_() - การฉายภาพในที่หลากหลาย.proju(u) - Project Vector u บนพื้นที่แทนเจนต์ คุณต้องฉายภาพเวกเตอร์ทั้งหมดสำหรับทุกวิธีด้านล่าง.egrad2rgrad(u) - โครงการไล่ระดับสี u บน riemannian manifold.inner(u, v=None) - ผลิตภัณฑ์ภายใน ณ จุดนี้สำหรับเวกเตอร์แทนเจนต์สอง ตัว ณ จุดนี้ เวกเตอร์ที่ผ่านมาไม่ได้คาดการณ์ไว้พวกเขาจะถูกคาดการณ์ไว้แล้ว.retr(u) - แผนที่การหดตัวต่อไปนี้เวกเตอร์ u.expmap(u) - แผนที่เอ็กซ์โปเนนเชียลต่อไปนี้เวกเตอร์ u (หาก expmap ไม่สามารถใช้งานได้ในรูปแบบปิดจะใช้การประมาณที่ดีที่สุด).transp(v, u) - การขนส่งเวกเตอร์ v พร้อมทิศทาง u.retr_transp(v, u) - การขนส่ง self , เวกเตอร์ v (และอาจเป็นเวกเตอร์มากขึ้น) ด้วยทิศทาง u (ผลตอบแทนเป็นเทนเซอร์ธรรมดา)geoopt.Euclidean - ไม่มีข้อ จำกัด ใน R กับตัวชี้วัดแบบยุคลิดgeoopt.Stiefel - Stiefel Manifold บนเมทริกซ์ A in R^{nxp} : A^t A=I , n >= pgeoopt.Sphere - Sphere Manifold ||x||=1geoopt.BirkhoffPolytope - Manifold of Doubly Stochastic Matricesgeoopt.Stereographic - แบบจำลองการฉายภาพสามgeoopt.SphereProjection - รูปแบบการฉายภาพทรงกลมแบบทรงกลมgeoopt.PoincareBall - Poincare Ball Modelgeoopt.Lorentz - โมเดลไฮเปอร์โบลด์geoopt.ProductManifold - คอนสตรัคเตอร์ผลิตภัณฑ์geoopt.Scaled - รุ่นที่ปรับขนาดของท่อร่วม คล้ายกับการเรียนรู้การเป็นตัวแทนแบบผสมกันในพื้นที่ผลิตภัณฑ์หากรวมกับ ProductManifoldgeoopt.SymmetricPositiveDefinite - SPD Matrix Manifoldgeoopt.UpperHalf - Siegel ครึ่งบน Manifold รองรับตัวชี้วัด Riemannian และ Finsler เช่นเดียวกับในพื้นที่สมมาตรสำหรับการฝังกราฟ: วิธี Finsler-Riemanniangeoopt.BoundedDomain - Siegel Bounded Domain Manifold สนับสนุนตัวชี้วัด Riemannian และ Finslermanifolds ทั้งหมดใช้วิธีการที่จำเป็นในการจัดการเทนเซอร์ใน manifolds และเวกเตอร์แทนเจนต์เพื่อใช้โดยทั่วไป ดูเพิ่มเติมในเอกสาร
geoopt.optim.RiemannianSGD - คลาสย่อยของ torch.optim.SGD กับ API เดียวกันgeoopt.optim.RiemannianAdam - คลาสย่อยของ torch.optim.Adamgeoopt.samplers.RSGLD - Riemannian Stochastic Groadient Langevin Dynamicsgeoopt.samplers.RHMC - Riemannian Hamiltonian Monte -Carlogeoopt.samplers.SGRHMC - Stochastic Gradient 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