partial_tucker(tensor, rank, modes=None, n_iter_max=100, init='svd', tol=0.0001, svd='truncated_svd', random_state=None, verbose=False, mask=None, svd_mask_repeats=5)[source]

Partial tucker decomposition via Higher Order Orthogonal Iteration (HOI)

Decomposes tensor into a Tucker decomposition exclusively along the provided modes.

rankNone, int or int list

size of the core tensor, (len(ranks) == tensor.ndim) if int, the same rank is used for all modes

modesNone, int list

list of the modes on which to perform the decomposition


maximum number of iteration

init{‘svd’, ‘random’}, or TuckerTensor optional

if a TuckerTensor is provided, this is used for initialization

svdstr, default is ‘truncated_svd’

function to use to compute the SVD, acceptable values in tensorly.tenalg.svd.SVD_FUNS

tolfloat, optional

tolerance: the algorithm stops when the variation in the reconstruction error is less than the tolerance

random_state{None, int, np.random.RandomState}
verboseint, optional

level of verbosity


array of booleans with the same shape as tensor should be 0 where the values are missing and 1 everywhere else. Note: if tensor is sparse, then mask should also be sparse with a fill value of 1 (or True).


core tensor of the Tucker decomposition

factorsndarray list

list of factors of the Tucker decomposition. with core.shape[i] == (tensor.shape[i], ranks[i]) for i in modes