t3toolbox.weighted_tucker_tensor_train.EdgeVectors ================================================== .. py:class:: t3toolbox.weighted_tucker_tensor_train.EdgeVectors Vectors that "live" on edges in a T3 tensor network. Attributes: ----------- shape_vectors: typ.Sequence[NDArray] Vectors on externally facing edges. len=d, elm_shape=stack_shape+(Ni,) tucker_vectors: typ.Sequence[NDArray] Vectors on edges between Tucker cores and TT cores. len=d, elm_shape=stack_shape+(ni,) tt_vectors: typ.Sequence[NDArray] Vectors on edges between adjacent TT cores. len=d+1, elm_shape=stack_shape+(ri,) .. py:attribute:: tucker_edge_vectors :type: t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis] .. py:attribute:: tt_vectors :type: t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis] .. py:method:: data() -> t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis], t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis]] .. py:method:: d() -> int .. py:method:: tucker_ranks() -> t3toolbox.backend.common.typ.Tuple[int, Ellipsis] .. py:method:: tt_ranks() -> t3toolbox.backend.common.typ.Tuple[int, Ellipsis] .. py:method:: stack_shape() -> t3toolbox.backend.common.typ.Tuple[int, Ellipsis] .. py:method:: validate() .. py:method:: __post_init__() .. py:method:: reverse() -> EdgeVectors Reverse edge vector ordering. .. rubric:: Examples >>> import numpy as np >>> import t3toolbox.tucker_tensor_train as t3 >>> import t3toolbox.weighted_tucker_tensor_train as wt3 >>> randn = np.random.randn >>> tucker_vectors = tuple([randn(9,10, 5), randn(9,10, 6), randn(9,10, 7)]) >>> tt_vectors = tuple([randn(9,10, 1), randn(9,10, 2), randn(9,10, 3), randn(9,10, 4)]) >>> ev = wt3.EdgeVectors(tucker_vectors, tt_vectors) >>> ev_rev = ev.reverse() >>> print(ev.tucker_ranks, ev.tt_ranks) (5, 6, 7) (1, 2, 3, 4) >>> print(ev_rev.tucker_ranks, ev_rev.tt_ranks) (7, 6, 5) (4, 3, 2, 1)