TuckerTensorTrain.from_tensor_train#

static t3toolbox.tucker_tensor_train.TuckerTensorTrain.from_tensor_train(tt_cores)#
def from_tensor_train(
        tt_cores: Sequence[NDArray], # elm_shape=stack_shape+(ri, N, r(i+1))
) -> 'TuckerTensorTrain':

Convert tensor train into Tucker tensor train by using identity matrices for Tucker bases.

Parameters:

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

Returns:

T – Input tensor train, converted to TuckerTensorTrain format.

Return type:

TuckerTensorTrain

Examples

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