t3toolbox.uniform_basis_coordinates_format.UT3Basis#
- class t3toolbox.uniform_basis_coordinates_format.UT3Basis#
Basis for basis-coordinates representation of uniform Tucker tensor trains
Uniform version of T3Basis
Examples
>>> import numpy as np >>> import t3toolbox.basis_coordinates_format as bcf >>> ss = (2,3) >>> 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))) >>> basis = bcf.T3Basis(tucker_cores, left_tt_cores, right_tt_cores, outer_tt_cores) >>> print(basis.structure) ((14, 15, 16), (10, 11, 12), (1, 2, 3, 5), (2, 4, 5, 1), (9, 8, 7), (2, 3)) >>> print(basis.coordinate_shapes) (((9, 14), (8, 15), (7, 16)), ((1, 10, 4), (2, 11, 5), (3, 12, 1)))
- up_tucker_cores: t3toolbox.backend.common.NDArray#
- left_tt_cores: t3toolbox.backend.common.NDArray#
- right_tt_cores: t3toolbox.backend.common.NDArray#
- down_tt_cores: t3toolbox.backend.common.NDArray#
- shape_mask: t3toolbox.backend.common.NDArray#
- up_mask: t3toolbox.backend.common.NDArray#
- left_mask: t3toolbox.backend.common.NDArray#
- right_mask: t3toolbox.backend.common.NDArray#
- down_mask: t3toolbox.backend.common.NDArray#
- d() int#
- N() int#
- nU() int#
- nD() int#
- rL() int#
- rR() int#
- stack_shape() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
- uniform_structure() t3toolbox.backend.common.typ.Tuple[int, int, int, int, int, int, t3toolbox.backend.common.typ.Tuple[int, Ellipsis]]#
- shape() t3toolbox.backend.common.typ.Tuple[int, Ellipsis]#
- up_ranks() t3toolbox.backend.common.NDArray#
- down_ranks() t3toolbox.backend.common.NDArray#
- left_ranks() t3toolbox.backend.common.NDArray#
- right_ranks() t3toolbox.backend.common.NDArray#
- structure() t3toolbox.backend.common.typ.Tuple[t3toolbox.backend.common.typ.Tuple[int, Ellipsis], t3toolbox.backend.common.NDArray, t3toolbox.backend.common.NDArray, t3toolbox.backend.common.NDArray, t3toolbox.backend.common.NDArray, t3toolbox.backend.common.typ.Tuple[int, Ellipsis]]#
- coordinate_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]]#
T3Coordinates 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 | | | |
Examples
>>> import numpy as np >>> import t3toolbox.basis_coordinates_format as bcf >>> ss = (2,3) # not included in coordinate_shapes. >>> 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))) >>> basis = bcf.T3Basis(tucker_cores, left_tt_cores, right_tt_cores, outer_tt_cores) >>> print(basis.coordinate_shapes) (((9, 14), (8, 15), (7, 16)), ((1, 10, 4), (2, 11, 5), (3, 12, 1)))
- 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], 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 basis (T3Basis).
- Parameters:
x (T3Basis)
- Raises:
ValueError – Error raised if the cores of the T3Basis have inconsistent shapes.
See also
T3Basis,T3Coordinates
- __post_init__()#