UniformCorewiseGeometry ======================= .. toctree:: :hidden: /autoapi/t3toolbox/uniform_manifold/UniformCorewiseGeometry.frame /autoapi/t3toolbox/uniform_manifold/UniformCorewiseGeometry.randn /autoapi/t3toolbox/uniform_manifold/UniformCorewiseGeometry.randn_like /autoapi/t3toolbox/uniform_manifold/UniformCorewiseGeometry.project /autoapi/t3toolbox/uniform_manifold/UniformCorewiseGeometry.inner /autoapi/t3toolbox/uniform_manifold/UniformCorewiseGeometry.norm /autoapi/t3toolbox/uniform_manifold/UniformCorewiseGeometry.retract .. py:class:: t3toolbox.uniform_manifold.UniformCorewiseGeometry The Euclidean geometry of the uniform core parameter space (uniform mirror of :py:class:`~t3toolbox.manifold.CorewiseGeometry`). Optimization happens *on* the raw supercores: tangents are perturbations of the cores ``(U, G, G, G)`` (the non-orthonormal frame whose down/left/right cores are all the TT supercore ``G`` -- the Section 6.3 ``(P, Q, O) -> G`` substitution), the metric is the plain Euclidean (corewise) inner product, the "projection" is the identity (no gauge), and the retraction is vector addition in the supercores. Use the module singleton :py:data:`UNIFORM_COREWISE`. The manifold counterpart is :py:class:`UniformManifoldGeometry`. .. rubric:: Examples >>> import numpy as np >>> import t3toolbox.tucker_tensor_train as t3 >>> import t3toolbox.uniform_tucker_tensor_train as ut3 >>> import t3toolbox.uniform_manifold as ut3m >>> np.random.seed(0) >>> x = ut3.UniformTuckerTensorTrain.from_t3(t3.TuckerTensorTrain.randn((10, 11, 12), (3, 4, 3), (1, 2, 2, 1))) >>> frame = ut3m.UNIFORM_COREWISE.frame(x) # the (U, G, G, G) frame >>> v = ut3m.UNIFORM_COREWISE.randn(frame) # raw randn cores (no gauge) >>> print(bool(v.is_gauged().all())) False >>> y = ut3m.UNIFORM_COREWISE.retract(ut3m.UT3Tangent.zeros(frame)) # additive: cores += step (zero -> the point) >>> print(bool(np.allclose(y.to_dense(), x.to_dense()))) True Methods ------- .. autoapisummary:: t3toolbox.uniform_manifold.UniformCorewiseGeometry.frame t3toolbox.uniform_manifold.UniformCorewiseGeometry.randn t3toolbox.uniform_manifold.UniformCorewiseGeometry.randn_like t3toolbox.uniform_manifold.UniformCorewiseGeometry.project t3toolbox.uniform_manifold.UniformCorewiseGeometry.inner t3toolbox.uniform_manifold.UniformCorewiseGeometry.norm t3toolbox.uniform_manifold.UniformCorewiseGeometry.retract