t3toolbox.uniform_basis_variations_format.UT3Variations#
- class t3toolbox.uniform_basis_variations_format.UT3Variations#
Tuple containing variation cores for basis-variation representations of TuckerTensorTrains.
- Components
tucker_variations = (V0, …, V(d-1)), elm_shape=(nDi, Ni)
tt_variations = (H0, …, H(d-1)), elm_shape=(rLi, nUi, rRi)
The variations should fit in the “holes” of a T3Basis.
See also
T3BasisExamples
>>> import numpy as np >>> import t3toolbox.basis_variations_format as bvf >>> ss = (2,3) # stack shape >>> tucker_cores = (np.ones(ss+(10, 14)), np.ones(ss+(11, 15)), np.ones(ss+(12, 16))) >>> left_tt_cores = (np.ones(ss+(1, 10, 2)), np.ones(ss+(2, 11, 3)), np.ones(ss+(3,12,5))) >>> right_tt_cores = (np.ones(ss+(2, 10, 4)), np.ones(ss+(4, 11, 5)), np.ones(ss+(5, 12, 1))) >>> outer_tt_cores = (np.ones(ss+(1, 9, 4)), np.ones(ss+(2, 8, 5)), np.ones(ss+(3, 7, 1))) >>> base = bvf.T3Basis(tucker_cores, left_tt_cores, right_tt_cores, outer_tt_cores) >>> print(base.structure) ((14, 15, 16), (10, 11, 12), (1, 2, 3, 5), (2, 4, 5, 1), (9, 8, 7), (2, 3)) >>> tucker_variations = tuple([np.ones(ss + B_shape) for B_shape in base.variation_shapes[0]]) >>> tt_variations = tuple([np.ones(ss + G_shape) for G_shape in base.variation_shapes[1]]) >>> variations = bvf.T3Variations(tucker_variations, tt_variations) # variation that fits with base >>> print(variations.structure) # same as base, except first right tt rank and last left tt rank, which are None ((14, 15, 16), (9, 8, 7), (1, 2, 3, None), (None, 4, 5, 1), (10, 11, 12), (2, 3))
- tucker_variations: t3toolbox.backend.common.NDArray#
- tt_variations: t3toolbox.backend.common.NDArray#
- shape_mask: t3toolbox.backend.common.NDArray#
- variations_up_mask: t3toolbox.backend.common.NDArray#
- variations_down_mask: t3toolbox.backend.common.NDArray#
- variations_left_mask: t3toolbox.backend.common.NDArray#
- variations_right_mask: t3toolbox.backend.common.NDArray#
- d() int#
- shape() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
- stack_shape() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
- variation_shapes() t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, Ellipsis], Ellipsis], t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, Ellipsis], Ellipsis]]#
T3Variations shapes that fit with this T3Basis.
Shapes of the “holes” in the following tensor diagrams:
1 -- L0 -- ( ) -- R2 -- R3 -- 1 | | | | U0 U1 U2 U3 | | | | 1 -- L0 -- L1 -- O2 -- R3 -- 1 | | | | U0 U1 ( ) U3 | | | |
- 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]]#
- validate() None#
Check rank and shape consistency of Tucker tensor train variations (T3Variations).
- Parameters:
self (T3Variations)
- Raises:
ValueError – Error raised if the cores of the T3Variations have inconsistent shapes.
See also
T3Basis,T3Variations
- __post_init__()#