
Berlipat ganda pytorch.optim .
Implementasi tidak resmi untuk “Metode Optimasi Adaptif Riemannian” ICLR2019 dan banyak lagi.
Pastikan Anda memiliki pytorch> = 2.0.1 diinstal
Ada dua cara untuk menginstal geoopt:
pip install git+https://github.com/geoopt/geoopt.gitpip install geooptCara yang disukai untuk menginstal geoopt akan berubah setelah tahap proyek yang stabil tercapai. Sekarang, PYPI berada di belakang Master saat kami secara aktif mengembangkan dan mengimplementasikan fitur -fitur baru.
Geoopt secara resmi mendukung 2 versi stabil terbaru dari Pytorch hulu atau rilis besar terbaru.
Pekerjaan sedang berlangsung tetapi Anda sudah bisa menggunakan ini. Perhatikan bahwa API mungkin berubah dalam rilis di masa mendatang.
geoopt.ManifoldTensor - Sama seperti torch.tensor dengan argumen kata kunci manifold tambahan.geoopt.ManifoldParameter - sama seperti di atas, diakui dalam torch.nn.Module.parameters sebagai subklassed dengan benar.Semua wadah di atas memiliki metode khusus untuk bekerja dengannya seperti halnya poin pada manifold tertentu
.proj_() - proyeksi di manifold..proju(u) - Proyek Vektor u di ruang tangen. Anda perlu memproyeksikan semua vektor untuk semua metode di bawah ini..egrad2rgrad(u) - gradien proyek u pada manifold riemannian.inner(u, v=None) - produk dalam pada titik ini untuk dua vektor singgung pada saat ini. Vektor yang diteruskan tidak diproyeksikan, mereka diasumsikan sudah diproyeksikan..retr(u) - peta retraction mengikuti vektor u.expmap(u) - Peta Eksponensial Mengikuti Vektor u (jika ExpMap tidak tersedia dalam bentuk tertutup, perkiraan terbaik digunakan).transp(v, u) - Vektor transportasi v dengan arah u.retr_transp(v, u) - transportasi self , vektor v (dan mungkin lebih banyak vektor) dengan arah u (pengembalian adalah tensor polos)geoopt.Euclidean - manifold yang tidak dibatasi dalam R dengan metrik Euclideangeoopt.Stiefel - stiefel manifold pada matriks A in R^{nxp} : A^t A=I , n >= pgeoopt.Sphere - sphere manifold ||x||=1geoopt.BirkhoffPolytope - manifold matriks stokastik gandageoopt.Stereographic - model proyeksi stereografi kelengkungan konstangeoopt.SphereProjection - Model proyeksi stereografis spheregeoopt.PoincareBall - model bola poincaregeoopt.Lorentz - model hiperboloidgeoopt.ProductManifold - konstruktor manifold produkgeoopt.Scaled - versi scaled dari manifold. Mirip dengan belajar representasi mixed-curvature di ruang produk jika dikombinasikan dengan ProductManifoldgeoopt.SymmetricPositiveDefinite - spd matrix manifoldgeoopt.UpperHalf - Siegel bagian atas setengah manifold. Mendukung metrik Riemannian dan Finsler, seperti dalam ruang simetris untuk embeddings grafik: pendekatan Finsler-Riemannian.geoopt.BoundedDomain - Siegel terikat domain manifold. Mendukung metrik Riemannian dan Finsler.Semua manifold mengimplementasikan metode yang diperlukan untuk memanipulasi tensor pada manifold dan vektor singgung untuk digunakan secara umum. Lihat lebih banyak dalam dokumentasi.
geoopt.optim.RiemannianSGD - subclass dari torch.optim.SGD dengan API yang samageoopt.optim.RiemannianAdam - subclass dari torch.optim.Adamgeoopt.samplers.RSGLD - gradien stokastik Riemannian dinamika Langevingeoopt.samplers.RHMC - Riemannian Hamiltonian Monte -Carlogeoopt.samplers.SGRHMC - gradien stochastic Riemannian Hamiltonian Monte -Carlo Modul geoopt.layers EKSPERIMENSI memungkinkan untuk menyematkan geoopt ke dalam pembelajaran yang mendalam
Jika Anda menemukan proyek ini berguna dalam penelitian Anda, silakan tambahkan entri Bibtex ini dalam referensi dan mengutip.
@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