“黎曼自适应优化方法”ICLR2019等的非正式实施
geoopt的Python项目详细描述
流形感知pytorch.optim。
非正式实施“Riemannian Adaptive Optimization Methods”ICLR2019及更多。
到目前为止做了什么
工作正在进行中,但您已经可以使用它了。注意,api可能 未来版本的更改。
张量
- geoopt.ManifoldTensor–就像torch.tensor和additional manifold关键字参数。
- geoopt.ManifoldParameter–同上,在 torch.nn.Module.parameters作为正确的子类。
所有上述容器都有特殊的处理方法 某个流形上的点
- .proj_()–流形上的就地投影。
- .proju(u)–切线空间上的项目向量u。你需要 为下面的所有方法投影所有矢量。
- .inner(u, v=None)–此时两个的内积 tangent此时的向量。传递的向量不是 预计,他们被假定已经预计。
- .retr(u, t)–在向量后面的缩回映射u表示时间 t
- .transp(u, t, v, *more)–传输向量v(可能还有 更多向量)具有方向u表示时间t
- .retr_transp(u, t, v, *more)–传输self,矢量v (可能还有更多向量)方向为u,时间为t (返回是纯张量)
歧管
- geoopt.Euclidean–在R中的无约束流形 欧氏度量
- geoopt.Stiefel–矩阵上的stiefel流形 A in R^{n x p} : A^t A=I,n >= p
优化器
- geoopt.optim.RiemannianSGD–一个^{tt28}的子类$ 使用相同的API
- geoopt.optim.RiemannianAdam–一个子类torch.optim.Adam
采样器
- geoopt.samplers.RSGLD–黎曼随机梯度langevin 动力学
- geoopt.samplers.RHMC–黎曼哈密顿蒙特卡罗
- geoopt.samplers.SGRHMC–随机梯度黎曼 哈密顿蒙特卡罗