
Коллектор знает pytorch.optim .
Неофициальная реализация «методов адаптивной оптимизации риманиан» ICLR2019 и более.
Убедитесь, что у вас есть Pytorch> = 2.0.1.
Есть два способа установить Geoopt:
pip install git+https://github.com/geoopt/geoopt.gitpip install geooptПредпочтительный способ установки Geoopt изменится после достижения стабильной стадии проекта. Теперь PYPI стоит за мастером, поскольку мы активно разрабатываем и внедряем новые функции.
Geoopt официально поддерживает 2 последних стабильных версий Pytorch Upstream или последнего крупного выпуска.
Работа находится в процессе, но вы уже можете использовать это. Обратите внимание, что API может измениться в будущих выпусках.
geoopt.ManifoldTensor - точно так же, как Torch.tensor с дополнительным аргументом ключевого слова manifold .geoopt.ManifoldParameter - то же самое, что и выше, распознается в torch.nn.Module.parameters как правильно подкласс.Все контейнеры выше имеют особые методы для работы с ними, как с точками на определенном многообразии
.proj_() - Проекция на место на многообразии..proju(u) - Проектный вектор u на касательном пространстве. Вам нужно проецировать все векторы для всех методов ниже..egrad2rgrad(u) - градиент проекта u на Riemannian Medifold.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 - Uncestressed Marifold в R с Euclidean Metricgeoopt.Stiefel - stiefel maruld на матрицах A in R^{nxp} : A^t A=I , n >= pgeoopt.Sphere - Sphere Manifold ||x||=1geoopt.BirkhoffPolytope - коллектор двойной стохастических матрицgeoopt.Stereographic - модель стереографической проекции постоянной кривизныgeoopt.SphereProjection - Сфера стереографическая модель проекцииgeoopt.PoincareBall - модель бала Pincaregeoopt.Lorentz - модель гиперболоидаgeoopt.ProductManifold - конструктор продуктаgeoopt.Scaled - масштабированная версия коллектора. Подобно обучению представлениям смешанной ProductManifoldgeoopt.SymmetricPositiveDefinite - Matrix Marix Spdgeoopt.UpperHalf - Siegel Upper Half Carurald. Поддерживает метрики римана и финслера, как в симметричных пространствах для встроенных графиков: подход Finsler-Riemannian.geoopt.BoundedDomain - Siegel ограниченный домен коллектор. Поддерживает метрики риманы и финслера.Все коллекторы реализуют методы, необходимые для манипулирования тензорами на многообразии и касательных векторов, которые будут использоваться в общем назначении. Смотрите больше в документации.
geoopt.optim.RiemannianSGD - подкласс torch.optim.SGD с тем же APIgeoopt.optim.RiemannianAdam - подкласс torch.optim.Adamgeoopt.samplers.RSGLD - риманн стохастический градиент 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: 0x008319973D4017414FDF5B3BEF1369BA78275C6A