TuckerTensorTrain.reverse#
- t3toolbox.tucker_tensor_train.TuckerTensorTrain.reverse()#
def reverse(self) -> 'TuckerTensorTrain':
Reverse Tucker tensor train.
- Returns:
Tucker tensor train with index order reversed.
shape=(N(d-1), ..., N0),tucker_ranks=(n(d-1),...,n0),tt_ranks=(1,r(d-1),...,r1,1).- Return type:
Examples
>>> import numpy as np >>> import t3toolbox.tucker_tensor_train as t3 >>> np.random.seed(0) >>> randn = np.random.randn >>> tucker_cores = (randn(2,3, 4,10), randn(2,3, 5,11), randn(2,3, 6,12)) >>> tt_cores = (randn(2,3, 1,4,2), randn(2,3, 2,5,3), randn(2,3, 3,6,4)) >>> x = t3.TuckerTensorTrain(tucker_cores, tt_cores) >>> print(x.structure) ((10, 11, 12), (4, 5, 6), (1, 2, 3, 4), (2, 3)) >>> reversed_x = x.reverse() >>> print(reversed_x.structure) # shape, Tucker and TT ranks all reversed ((12, 11, 10), (6, 5, 4), (4, 3, 2, 1), (2, 3)) >>> x_dense = x.to_dense() >>> reversed_x_dense = reversed_x.to_dense() >>> x_dense2 = reversed_x_dense.transpose([0,1, 4,3,2]) # un-reverse the free axes >>> print(np.allclose(x_dense, x_dense2)) True