TuckerTensorTrain.to_tensor_train#

t3toolbox.tucker_tensor_train.TuckerTensorTrain.to_tensor_train()#
def to_tensor_train(
        self,
) -> Tuple[NDArray,...]: # tt_cores

Convert this TuckerTensorTrain to a tensor train by contracting Tucker bases with TT cores.

Returns:

tt_cores – Tensor train cores. len(tt_cores)=d, tt_cores[ii].shape=stack_shape+(ri, Ni, r(i+1)).

Return type:

Sequence[NDArray]

Examples

>>> import numpy as np
>>> import t3toolbox.tucker_tensor_train as t3
>>> np.random.seed(0)
>>> x = t3.TuckerTensorTrain.randn((14,15,16), (5,6,7), (2,3,4,1), (2,3))
>>> big_tt_cores = x.to_tensor_train()
>>> x_dense = np.einsum('...aib,...bjc,...ckd->...ijk', *big_tt_cores)
>>> x_dense2 = x.to_dense()
>>> print(np.allclose(x_dense, x_dense2))
True