t3toolbox.weighted_tucker_tensor_train.EdgeVectors#
- 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,)
- tucker_edge_vectors: t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis]#
- tt_vectors: t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.NDArray, Ellipsis]#
- 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]]#
- d() int#
- tucker_ranks() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
- tt_ranks() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
- stack_shape() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
- validate()#
- __post_init__()#
- reverse() EdgeVectors#
Reverse edge vector ordering.
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)